Georg Brandl | 8ec7f65 | 2007-08-15 14:28:01 +0000 | [diff] [blame] | 1 | :mod:`MimeWriter` --- Generic MIME file writer |
| 2 | ============================================== |
| 3 | |
| 4 | .. module:: MimeWriter |
| 5 | :synopsis: Write MIME format files. |
Georg Brandl | 7f758c4 | 2007-08-15 18:41:25 +0000 | [diff] [blame] | 6 | :deprecated: |
Georg Brandl | 8ec7f65 | 2007-08-15 14:28:01 +0000 | [diff] [blame] | 7 | |
| 8 | .. sectionauthor:: Christopher G. Petrilli <petrilli@amber.org> |
| 9 | |
| 10 | |
| 11 | .. deprecated:: 2.3 |
| 12 | The :mod:`email` package should be used in preference to the :mod:`MimeWriter` |
| 13 | module. This module is present only to maintain backward compatibility. |
| 14 | |
| 15 | This module defines the class :class:`MimeWriter`. The :class:`MimeWriter` |
| 16 | class implements a basic formatter for creating MIME multi-part files. It |
| 17 | doesn't seek around the output file nor does it use large amounts of buffer |
| 18 | space. You must write the parts out in the order that they should occur in the |
| 19 | final file. :class:`MimeWriter` does buffer the headers you add, allowing you |
| 20 | to rearrange their order. |
| 21 | |
| 22 | |
| 23 | .. class:: MimeWriter(fp) |
| 24 | |
| 25 | Return a new instance of the :class:`MimeWriter` class. The only argument |
| 26 | passed, *fp*, is a file object to be used for writing. Note that a |
| 27 | :class:`StringIO` object could also be used. |
| 28 | |
| 29 | |
| 30 | .. _mimewriter-objects: |
| 31 | |
| 32 | MimeWriter Objects |
| 33 | ------------------ |
| 34 | |
| 35 | :class:`MimeWriter` instances have the following methods: |
| 36 | |
| 37 | |
| 38 | .. method:: MimeWriter.addheader(key, value[, prefix]) |
| 39 | |
| 40 | Add a header line to the MIME message. The *key* is the name of the header, |
| 41 | where the *value* obviously provides the value of the header. The optional |
| 42 | argument *prefix* determines where the header is inserted; ``0`` means append |
| 43 | at the end, ``1`` is insert at the start. The default is to append. |
| 44 | |
| 45 | |
| 46 | .. method:: MimeWriter.flushheaders() |
| 47 | |
| 48 | Causes all headers accumulated so far to be written out (and forgotten). This is |
| 49 | useful if you don't need a body part at all, e.g. for a subpart of type |
| 50 | :mimetype:`message/rfc822` that's (mis)used to store some header-like |
| 51 | information. |
| 52 | |
| 53 | |
| 54 | .. method:: MimeWriter.startbody(ctype[, plist[, prefix]]) |
| 55 | |
| 56 | Returns a file-like object which can be used to write to the body of the |
| 57 | message. The content-type is set to the provided *ctype*, and the optional |
| 58 | parameter *plist* provides additional parameters for the content-type |
| 59 | declaration. *prefix* functions as in :meth:`addheader` except that the default |
| 60 | is to insert at the start. |
| 61 | |
| 62 | |
| 63 | .. method:: MimeWriter.startmultipartbody(subtype[, boundary[, plist[, prefix]]]) |
| 64 | |
| 65 | Returns a file-like object which can be used to write to the body of the |
| 66 | message. Additionally, this method initializes the multi-part code, where |
| 67 | *subtype* provides the multipart subtype, *boundary* may provide a user-defined |
| 68 | boundary specification, and *plist* provides optional parameters for the |
| 69 | subtype. *prefix* functions as in :meth:`startbody`. Subparts should be created |
| 70 | using :meth:`nextpart`. |
| 71 | |
| 72 | |
| 73 | .. method:: MimeWriter.nextpart() |
| 74 | |
| 75 | Returns a new instance of :class:`MimeWriter` which represents an individual |
| 76 | part in a multipart message. This may be used to write the part as well as |
| 77 | used for creating recursively complex multipart messages. The message must first |
| 78 | be initialized with :meth:`startmultipartbody` before using :meth:`nextpart`. |
| 79 | |
| 80 | |
| 81 | .. method:: MimeWriter.lastpart() |
| 82 | |
| 83 | This is used to designate the last part of a multipart message, and should |
| 84 | *always* be used when writing multipart messages. |
| 85 | |