New submission from hwgdb Smith <hwgdb...@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 <rep...@bugs.python.org>
<https://bugs.python.org/issue39771>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to