"email.iterators": Iteradores
*****************************

**Código fuente:** Lib/email/iterators.py

======================================================================

Iterar sobre un árbol de objetos mensaje es bastante fácil con el
método "Message.walk". El módulo "email.iterators" proporciona algunos
iteradores útiles de más alto nivel sobre árboles de objetos mensaje.

email.iterators.body_line_iterator(msg, decode=False)

   Itera sobre todas las cargas útiles de todas las subpartes de
   *msg*, retornando las cargas útiles en cadenas de caracteres línea
   por línea. Descarta todas las cabeceras de las subpartes, y
   descarta cualquier subparte con una carga útil que no sea una
   cadena de caracteres de Python. Esto de alguna forma es equivalente
   a leer la representación en texto plano del mensaje desde un
   fichero usando "readline()", descartando todas las cabeceras
   intermedias.

   El argumento opcional *decode* se pasa a través de
   "Message.get_payload".

email.iterators.typed_subpart_iterator(msg, maintype='text', subtype=None)

   Itera sobre todas las subpartes de *msg*, retornando solo las
   subpartes que coincidan el tipo MIME especificado por *maintype* y
   *subtype*.

   Note que *subtype* es opcional; si se omite, entonces se comprobará
   si el tipo MIME de las subpartes coincide con el tipo principal
   solamente. *maintype* es opcional también; su valor por defecto es
   *text*.

   Por tanto, por defecto "typed_subpart_iterator()" retorna cada
   parte que tenga un tipo MIME *text/**.

La siguiente función se ha añadido como una útil herramienta de
depuración. *No* debe ser considerada parte de la interfaz pública
soportada para este paquete.

email.iterators._structure(msg, fp=None, level=0, include_default=False)

   Imprime una representación con sangrías de los tipos del contenido
   de la estructura de objetos mensaje. Por ejemplo:

      >>> msg = email.message_from_file(somefile)
      >>> _structure(msg)
      multipart/mixed
          text/plain
          text/plain
          multipart/digest
              message/rfc822
                  text/plain
              message/rfc822
                  text/plain
              message/rfc822
                  text/plain
              message/rfc822
                  text/plain
              message/rfc822
                  text/plain
          text/plain

   El argumento opcional *fp* es un objeto similar a un fichero en el
   que imprimir la salida. Debe ser adecuado para la función de Python
   "print()". Se usa *level* internamente. *include_default*, si tiene
   su valor a verdadero, imprime el tipo por defecto también.
