| 
									
										
										
										
											2001-09-26 05:23:47 +00:00
										 |  |  | \declaremodule{standard}{email.Iterators} | 
					
						
							|  |  |  | \modulesynopsis{Iterate over a  message object tree.} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Iterating over a message object tree is fairly easy with the | 
					
						
							|  |  |  | \method{Message.walk()} method.  The \module{email.Iterators} module | 
					
						
							|  |  |  | provides some useful higher level iterations over message object | 
					
						
							|  |  |  | trees. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{body_line_iterator}{msg} | 
					
						
							|  |  |  | This iterates over all the payloads in all the subparts of \var{msg}, | 
					
						
							|  |  |  | returning the string payloads line-by-line.  It skips over all the | 
					
						
							|  |  |  | subpart headers, and it skips over any subpart with a payload that | 
					
						
							|  |  |  | isn't a Python string.  This is somewhat equivalent to reading the | 
					
						
							|  |  |  | flat text representation of the message from a file using | 
					
						
							|  |  |  | \method{readline()}, skipping over all the intervening headers. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{typed_subpart_iterator}{msg\optional{, | 
					
						
							|  |  |  |     maintype\optional{, subtype}}} | 
					
						
							|  |  |  | This iterates over all the subparts of \var{msg}, returning only those | 
					
						
							|  |  |  | subparts that match the MIME type specified by \var{maintype} and | 
					
						
							|  |  |  | \var{subtype}. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Note that \var{subtype} is optional; if omitted, then subpart MIME | 
					
						
							|  |  |  | type matching is done only with the main type.  \var{maintype} is | 
					
						
							| 
									
										
										
										
											2001-09-26 22:21:52 +00:00
										 |  |  | optional too; it defaults to \mimetype{text}. | 
					
						
							| 
									
										
										
										
											2001-09-26 05:23:47 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Thus, by default \function{typed_subpart_iterator()} returns each | 
					
						
							| 
									
										
										
										
											2001-09-26 22:21:52 +00:00
										 |  |  | subpart that has a MIME type of \mimetype{text/*}. | 
					
						
							| 
									
										
										
										
											2001-09-26 05:23:47 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-10-01 01:05:52 +00:00
										 |  |  | The following function has been added as a useful debugging tool.  It | 
					
						
							|  |  |  | should \emph{not} be considered part of the supported public interface | 
					
						
							|  |  |  | for the package. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{_structure}{msg\optional{, fp\optional{, level}}} | 
					
						
							|  |  |  | Prints an indented representation of the content types of the | 
					
						
							|  |  |  | message object structure.  For example: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{verbatim} | 
					
						
							|  |  |  | >>> 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 | 
					
						
							|  |  |  | \end{verbatim} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Optional \var{fp} is a file-like object to print the output to.  It | 
					
						
							|  |  |  | must be suitable for Python's extended print statement.  \var{level} | 
					
						
							|  |  |  | is used internally. | 
					
						
							|  |  |  | \end{funcdesc} |