PyDocs

Nav

Internet Data Handling

EmailPolicy

email.policy

class · Added in 3.6 (source)
  • EmailPolicy(**kw)
Controls for how messages are interpreted and formatted.

Most of the classes and many of the methods in the email package accept
Policy objects as parameters.  A Policy object contains a set of values and
functions that control how input is interpreted and how output is rendered.
For example, the parameter 'raise_on_defect' controls whether or not an RFC
violation results in an error being raised or not, while 'max_line_length'
controls the maximum length of output lines when a Message is serialized.

Any valid attribute may be overridden when a Policy is created by passing
it as a keyword argument to the constructor.  Policy objects are immutable,
but a new Policy object can be created with only certain values changed by
calling the Policy instance with keyword arguments.  Policy objects can
also be added, producing a new Policy object in which the non-default
attributes set in the right hand operand overwrite those specified in the
left operand.

Settable attributes:

raise_on_defect     -- If true, then defects should be raised as errors.
                       Default: False.

linesep             -- string containing the value to use as separation
                       between output lines.  Default '\n'.

cte_type            -- Type of allowed content transfer encodings

                       7bit  -- ASCII only
                       8bit  -- Content-Transfer-Encoding: 8bit is allowed

                       Default: 8bit.  Also controls the disposition of
                       (RFC invalid) binary data in headers; see the
                       documentation of the binary_fold method.

max_line_length     -- maximum length of lines, excluding 'linesep',
                       during serialization.  None or 0 means no line
                       wrapping is done.  Default is 78.

mangle_from_        -- a flag that, when True escapes From_ lines in the
                       body of the message by putting a '>' in front of
                       them. This is used when the message is being
                       serialized by a generator. Default: False.

message_factory     -- the class to use to create new message objects.
                       If the value is None, the default is Message.

verify_generated_headers
                    -- if true, the generator verifies that each header
                       they are properly folded, so that a parser won't
                       treat it as multiple headers, start-of-body, or
                       part of another header.
                       This is a check against custom Header & fold()
                       implementations.
PROVISIONAL

The API extensions enabled by this policy are currently provisional.
Refer to the documentation for details.

This policy adds new header parsing and folding algorithms.  Instead of
simple strings, headers are custom objects with custom attributes
depending on the type of the field.  The folding algorithm fully
implements RFCs 2047 and 5322.

In addition to the settable attributes listed above that apply to
all Policies, this policy adds the following additional attributes:

utf8                -- if False (the default) message headers will be
                       serialized as ASCII, using encoded words to encode
                       any non-ASCII characters in the source strings.  If
                       True, the message headers will be serialized using
                       utf8 and will not contain encoded words (see RFC
                       6532 for more on this serialization format).

refold_source       -- if the value for a header in the Message object
                       came from the parsing of some source, this attribute
                       indicates whether or not a generator should refold
                       that value when transforming the message back into
                       stream form.  The possible values are:

                       none  -- all source values use original folding
                       long  -- source values that have any line that is
                                longer than max_line_length will be
                                refolded
                       all  -- all values are refolded.

                       The default is 'long'.

header_factory      -- a callable that takes two arguments, 'name' and
                       'value', where 'name' is a header field name and
                       'value' is an unfolded header field value, and
                       returns a string-like object that represents that
                       header.  A default header_factory is provided that
                       understands some of the RFC5322 header field types.
                       (Currently address fields and date fields have
                       special treatment, while all other fields are
                       treated as unstructured.  This list will be
                       completed before the extension is marked stable.)

content_manager     -- an object with at least two methods: get_content
                       and set_content.  When the get_content or
                       set_content method of a Message object is called,
                       it calls the corresponding method of this object,
                       passing it the message object as its first argument,
                       and any arguments or keywords that were passed to
                       it as additional arguments.  The default
                       content_manager is
                       :data:`~email.contentmanager.raw_data_manager`.
Members of EmailPolicy

c

content_manager
An object with at least two methods: get_content and set_content.

f

fold
Given the header name and the value from the model, return a string containing linesep characters that implement the folding of the header according to the policy controls.
fold_binary
Given the header name and the value from the model, return binary data containing linesep characters that implement the folding of the header according to the policy controls.

h

header_factory
A callable that takes two arguments, name and value, where name is a header field name and value is an unfolded header field value, and returns a string subclass that represents that header.
header_fetch_parse
Given the header name and the value from the model, return the value to be returned to the application program that is requesting that header.
header_max_count
Return the maximum allowed number of headers named 'name'.
header_source_parse
Given a list of linesep terminated strings constituting the lines of a single header, return the (name, value) tuple that should be stored in the model.
header_store_parse
Given the header name and the value provided by the application program, return the (name, value) that should be stored in the model.

r

refold_source
If the value for a header in the Message object originated from a parser (as opposed to being set by a program), this attribute indicates whether or not a generator should refold that value when tran…

u

utf8
If False, follow RFC 5322, supporting non-ASCII characters in headers by encoding them as RFC 2047 “encoded words”.
0 Examples
No examples for email.policy/EmailPolicy.
See Also
No see-alsos for email.policy/EmailPolicy
0 Notes
No notes for EmailPolicy