[New-bugs-announce] [issue47141] EmailMessage may lack Mime-Version

Vlastimil Zíma report at bugs.python.org
Mon Mar 28 08:26:22 EDT 2022


New submission from Vlastimil Zíma <vlastimil at ziima.cz>:

When an `EmailMessage` is created without setting its content, it may lack the `MIME-Version` header. I encountered this behavior when creating a S/MIME signed message, but I believe it applies to any `EmailMessage` in general.

Example:


from email.message import EmailMessage

nested_message = EmailMessage()
nested_message.set_content("Gazpacho!")

env = EmailMessage()
env.add_header("Content-Type", "multipart/signed", protocol="application/pkcs7-signature", micalg='sha-256')
env.preamble = "This is an S/MIME signed message"
env.attach(nested_message)
print(str(env))


This results in a message with no `MIME-Version` header


Content-Type: multipart/signed; protocol="application/pkcs7-signature";
 micalg="sha-256"; boundary="===============4414940364499332856=="

This is an S/MIME signed message
--===============4414940364499332856==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
MIME-Version: 1.0

Gazpacho!

--===============4414940364499332856==--


which violates section 4 of RFC 2045, see https://datatracker.ietf.org/doc/html/rfc2045#section-4


> Messages composed in accordance with this document MUST include such
   a header field, with the following verbatim text:

     MIME-Version: 1.0


and the section doesn't seem to be obsoleted by newer MIME related RFCs.

It's not clear why the `EmailMessage` shouldn't have the `MIME-Version` header defined in all cases, since it should represent the email message. I suggest to set the `MIME-version` header on `__init__` the same way `MIMEBase` does.

----------
components: email
messages: 416163
nosy: Vlastimil.Zíma, barry, r.david.murray
priority: normal
severity: normal
status: open
title: EmailMessage may lack Mime-Version
type: behavior
versions: Python 3.10, Python 3.9

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue47141>
_______________________________________


More information about the New-bugs-announce mailing list