首页 > 解决方案 > 如何在 python 中设置 Content-Transfer-Encoding

问题描述

一些用户将内容传输编码类型设置为 base64。如何手动设置 Content-Transfer-Encoding。

  import smtplib
  from email.message import EmailMessage
  from email.encoders import encode_7or8bit

  msg = EmailMessage()
  msg.set_content(message,subtype='html')
  #msg.set_charset('UTF-8')
  msg['Subject'] ="your order is {} at {}".format(order_id,today_is)
  msg['From'] = 'email@gmail.com'
  msg['To'] = 'toemail@gmail.com'
  encode_7or8bit(msg)

这是我得到的错误。

 ValueError: There may be at most 1 Content-Transfer-Encoding headers in a message

如果我移到encode_7or8bit(msg)上面msg.set_content它可以工作,但我认为内容没有被设置。我应该把东西寄到set_content

标签: python-3.xemail

解决方案


import smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg.set_content(message,subtype='html',charset='utf-8',cte='7bit')
msg['Subject'] ="your order is {} at {}".format(order_id,today_is)
msg['From'] = 'email@gmail.com'
msg['To'] = 'toemail@gmail.com'

msg.set_content()必须发送 cte。 Python 3 电子邮件内容编码类型


推荐阅读