standards-compliant way, should handle MIME and non-MIME email messages just
fine, and is designed so that the transformation from flat text, to a message
structure via the :class:`~email.parser.Parser` class, and back to flat text,
-is idempotent (the input is identical to the output).
+is idempotent (the input is identical to the output). On the other hand, using
+the Generator on a :class:`~email.message.Message` constructed by program may
+result in changes to the :class:`~email.message.Message` object as defaults are
+filled in.
Here are the public methods of the :class:`Generator` class, imported from the
:mod:`email.generator` module:
Return the entire message flattened as a string. When optional *unixfrom*
is ``True``, the envelope header is included in the returned string.
- *unixfrom* defaults to ``False``.
+ *unixfrom* defaults to ``False``. Flattening the message may trigger
+ changes to the :class:`Message` if defaults need to be filled in to
+ complete the transformation to a string (for example, MIME boundaries may
+ be generated or modified).
Note that this method is provided as a convenience and may not always
format the message the way you want. For example, by default it mangles
also be added.
Optional *boundary* is the multipart boundary string. When ``None`` (the
- default), the boundary is calculated when needed.
+ default), the boundary is calculated when needed (for example, when the
+ message is serialized).
*_subparts* is a sequence of initial subparts for the payload. It must be
possible to convert this sequence to a list. You can always attach new subparts