代码之家  ›  专栏  ›  技术社区  ›  Flux

如何将电子邮件正文设置为包含多字节字符的字符串?

  •  0
  • Flux  · 技术社区  · 5 年前

    当我试图修改已解析电子邮件的正文时,结果消息的编码是错误的。这是一个最小的例子:

    raw_message = '''From: user@example.org
    To: john@example.com
    Subject: Happy new year
    
    Please submit your 50000 word paper tomorrow.
    '''
    
    import email
    from email import policy
    
    msg = email.message_from_string(raw_message, policy=policy.default)
    msg.set_content('天地玄黃宇宙洪荒')
    print(msg)
    

    这张照片:

    From: user@example.org
    To: john@example.com
    Subject: Happy new year
    Content-Type: text/plain; charset="utf-8"
    Content-Transfer-Encoding: base64
    MIME-Version: 1.0
    
    5aSp5Zyw546E6buD5a6H5a6Z5rSq6I2SCg==
    

    编码错误,无法显示汉字。如何将电子邮件的内容设置为包含多字节字符(如CJK字符)的字符串?

    Python版本:Python 3.6.8

    0 回复  |  直到 5 年前