[issue39771] EmailMessage.add_header doesn't work
hwgdb Smith
report at bugs.python.org
Thu Feb 27 02:12:32 EST 2020
New submission from hwgdb Smith <hwgdb123 at gmail.com>:
here is the partial code:
msg = EmailMessage()
file_name = "超e保3000P.csv"
ctype, encoding = mimetypes.guess_type(file_name)
if ctype is None or encoding is not None:
ctype = "application/octet-stream"
maintype, subtype = ctype.split("/", 1)
with open(file_name, "rb") as f:
msg.add_attachment(f.read(), maintype=maintype, subtype=subtype, filename=("GBK", "", f"{file_name}"))
The file has non-ascii characters name, so I use the three tuple filename with encode GBK, but msg.as_string() doesn't change.
print(msg.as_string()) I find the filename is 'filename*=utf-8\'\'%E8%B6 ......'. The encoding is not correct. And of course, after send the message, I saw the attached file's filename displayed incorrect on my mail client or web mail.
But when i use the legacy API, and using the Header class to generate the filename, it works.
----------
components: email
messages: 362780
nosy: barry, hwgdb Smith, r.david.murray
priority: normal
severity: normal
status: open
title: EmailMessage.add_header doesn't work
type: behavior
versions: Python 3.7, Python 3.8
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue39771>
_______________________________________
More information about the Python-bugs-list
mailing list