| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \section{\module{mimify} --- | 
					
						
							| 
									
										
										
										
											1999-04-23 16:44:53 +00:00
										 |  |  |          MIME processing of mail messages} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-04-23 16:44:53 +00:00
										 |  |  | \declaremodule{standard}{mimify} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | \modulesynopsis{Mimification and unmimification of mail messages.} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-07-30 22:05:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | The mimify module defines two functions to convert mail messages to | 
					
						
							|  |  |  | and from MIME format.  The mail message can be either a simple message | 
					
						
							|  |  |  | or a so-called multipart message.  Each part is treated separately. | 
					
						
							|  |  |  | Mimifying (a part of) a message entails encoding the message as | 
					
						
							|  |  |  | quoted-printable if it contains any characters that cannot be | 
					
						
							| 
									
										
										
										
											1999-04-23 16:44:53 +00:00
										 |  |  | represented using 7-bit \ASCII.  Unmimifying (a part of) a message | 
					
						
							| 
									
										
										
										
											1997-07-30 22:05:07 +00:00
										 |  |  | entails undoing the quoted-printable encoding.  Mimify and unmimify | 
					
						
							|  |  |  | are especially useful when a message has to be edited before being | 
					
						
							|  |  |  | sent.  Typical use would be: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{verbatim} | 
					
						
							|  |  |  | unmimify message | 
					
						
							|  |  |  | edit message | 
					
						
							|  |  |  | mimify message | 
					
						
							|  |  |  | send message | 
					
						
							|  |  |  | \end{verbatim} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The modules defines the following user-callable functions and | 
					
						
							|  |  |  | user-settable variables: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{mimify}{infile, outfile} | 
					
						
							|  |  |  | Copy the message in \var{infile} to \var{outfile}, converting parts to | 
					
						
							|  |  |  | quoted-printable and adding MIME mail headers when necessary. | 
					
						
							|  |  |  | \var{infile} and \var{outfile} can be file objects (actually, any | 
					
						
							| 
									
										
										
										
											1999-04-23 16:44:53 +00:00
										 |  |  | object that has a \method{readline()} method (for \var{infile}) or a | 
					
						
							|  |  |  | \method{write()} method (for \var{outfile})) or strings naming the files. | 
					
						
							| 
									
										
										
										
											1997-07-30 22:05:07 +00:00
										 |  |  | If \var{infile} and \var{outfile} are both strings, they may have the | 
					
						
							|  |  |  | same value. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-04-23 16:44:53 +00:00
										 |  |  | \begin{funcdesc}{unmimify}{infile, outfile\optional{, decode_base64}} | 
					
						
							| 
									
										
										
										
											1997-07-30 22:05:07 +00:00
										 |  |  | Copy the message in \var{infile} to \var{outfile}, decoding all | 
					
						
							|  |  |  | quoted-printable parts.  \var{infile} and \var{outfile} can be file | 
					
						
							| 
									
										
										
										
											1999-04-23 16:44:53 +00:00
										 |  |  | objects (actually, any object that has a \method{readline()} method (for | 
					
						
							|  |  |  | \var{infile}) or a \method{write()} method (for \var{outfile})) or strings | 
					
						
							| 
									
										
										
										
											1997-07-30 22:05:07 +00:00
										 |  |  | naming the files.  If \var{infile} and \var{outfile} are both strings, | 
					
						
							|  |  |  | they may have the same value. | 
					
						
							|  |  |  | If the \var{decode_base64} argument is provided and tests true, any | 
					
						
							|  |  |  | parts that are coded in the base64 encoding are decoded as well. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-08-14 14:13:01 +00:00
										 |  |  | \begin{funcdesc}{mime_decode_header}{line} | 
					
						
							|  |  |  | Return a decoded version of the encoded header line in \var{line}. | 
					
						
							| 
									
										
										
										
											2002-06-18 18:51:30 +00:00
										 |  |  | This only supports the ISO 8859-1 charset (Latin-1). | 
					
						
							| 
									
										
										
										
											1997-08-14 14:13:01 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{mime_encode_header}{line} | 
					
						
							|  |  |  | Return a MIME-encoded version of the header line in \var{line}. | 
					
						
							|  |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-07-30 22:05:07 +00:00
										 |  |  | \begin{datadesc}{MAXLEN} | 
					
						
							|  |  |  | By default, a part will be encoded as quoted-printable when it | 
					
						
							| 
									
										
										
										
											2001-07-06 19:28:48 +00:00
										 |  |  | contains any non-\ASCII{} characters (characters with the 8th bit | 
					
						
							| 
									
										
										
										
											1999-04-23 16:44:53 +00:00
										 |  |  | set), or if there are any lines longer than \constant{MAXLEN} characters | 
					
						
							| 
									
										
										
										
											1997-07-30 22:05:07 +00:00
										 |  |  | (default value 200).   | 
					
						
							|  |  |  | \end{datadesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{datadesc}{CHARSET} | 
					
						
							|  |  |  | When not specified in the mail headers, a character set must be filled | 
					
						
							| 
									
										
										
										
											1999-04-23 16:44:53 +00:00
										 |  |  | in.  The string used is stored in \constant{CHARSET}, and the default | 
					
						
							| 
									
										
										
										
											1997-07-30 22:05:07 +00:00
										 |  |  | value is ISO-8859-1 (also known as Latin1 (latin-one)). | 
					
						
							|  |  |  | \end{datadesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This module can also be used from the command line.  Usage is as | 
					
						
							|  |  |  | follows: | 
					
						
							|  |  |  | \begin{verbatim} | 
					
						
							|  |  |  | mimify.py -e [-l length] [infile [outfile]] | 
					
						
							|  |  |  | mimify.py -d [-b] [infile [outfile]] | 
					
						
							|  |  |  | \end{verbatim} | 
					
						
							|  |  |  | to encode (mimify) and decode (unmimify) respectively.  \var{infile} | 
					
						
							|  |  |  | defaults to standard input, \var{outfile} defaults to standard output. | 
					
						
							|  |  |  | The same file can be specified for input and output. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-04-23 16:44:53 +00:00
										 |  |  | If the \strong{-l} option is given when encoding, if there are any lines | 
					
						
							| 
									
										
										
										
											1997-07-30 22:05:07 +00:00
										 |  |  | longer than the specified \var{length}, the containing part will be | 
					
						
							|  |  |  | encoded. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-04-23 16:44:53 +00:00
										 |  |  | If the \strong{-b} option is given when decoding, any base64 parts will | 
					
						
							| 
									
										
										
										
											1997-07-30 22:05:07 +00:00
										 |  |  | be decoded as well. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-04-04 20:42:38 +00:00
										 |  |  | \begin{seealso} | 
					
						
							|  |  |  |   \seemodule{quopri}{Encode and decode MIME quoted-printable files.} | 
					
						
							|  |  |  | \end{seealso} |