GAE Python-如何在邮件正文中编码特殊字符?

GAE Python-如何在邮件正文中编码特殊字符?,python,google-app-engine,email,mime,Python,Google App Engine,Email,Mime,我喜欢在google app engine上用python发送订单通知。 问题是邮件正文可能包含特殊字符,如“öäü”,但我找不到从内容类型修改字符集的机会 是否有可能将字符集从charset=“us ascii”更改为“utf-8”,并仍然使用google app engine邮件api或解决方法?是否要添加参数内容传输编码:quoted printable 以下是我发送通知的方法: from google.appengine.ext import db from google.appengi

我喜欢在google app engine上用python发送订单通知。 问题是邮件正文可能包含特殊字符,如“öäü”,但我找不到从内容类型修改字符集的机会

是否有可能将字符集从charset=“us ascii”更改为“utf-8”,并仍然使用google app engine邮件api或解决方法?是否要添加参数内容传输编码:quoted printable

以下是我发送通知的方法:

from google.appengine.ext import db
from google.appengine.api import mail

from email.header import Header

def encode_mail_header(line):
    return Header(line, 'utf-8').encode()

msg = u"Message with some chars like öäüßéèô..."
subject = encode_mail_header(u"Hans Müller your Ticket")
sender = "My Service <notification+@localhost.de>"
to = encode_mail_header(u"Hans Müller")
to += " <hans.mueller@localhost>"

message = mail.EmailMessage(sender=sender,
      to=to,
      subject=subject,
      body=msg)
message.send()
来自google.appengine.ext导入数据库
从google.appengine.api导入邮件
从email.header导入头
def编码邮件头(行):
返回标头(行“utf-8”).encode()
msg=u“带有一些字符的消息,如öäüßèèèè…”
主题=编码邮件头(你的票)
sender=“我的服务”
to=编码邮件头(u“Hans Müller”)
至+=“”
message=mail.EmailMessage(发件人=发件人,
to=to,
主语,
body=msg)
message.send()
从我的开发服务器收到电子邮件代码:

Received: from spooler by localhost (Mercury/32 v4.62); 26 Mar 2013 10:50:35 +0100
X-Envelope-To: <hans.mueller@localhost>
Return-path: <notification+@localhost.de>
Received: from [192.168.56.1] (127.0.0.1) by localhost (Mercury/32 v4.62) with ESMTP ID MG000011;
   26 Mar 2013 10:50:24 +0100
Content-Type: multipart/mixed; boundary="===============1598388400=="
MIME-Version: 1.0
To: =?utf-8?q?Hans_M=C3=BCller?= <hans.mueller@localhost>
From: My Service <notification+@localhost.de>
Reply-To:
Subject: =?utf-8?q?Hans_M=C3=BCller_your_Ticket?=
X-UC-Weight: [#   ] 51
X-CC-Diagnostic: Not Header "Date" Exists (51)

--===============1598388400==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit

Message with some chars like öäüßéèô...
--===============1598388400==--
接收:本地主机从后台处理程序(Mercury/32 v4.62);2013年3月26日10:50:35+0100
X-信封到:
返回路径:
接收:来自[192.168.56.1](127.0.0.1)的本地主机(Mercury/32 v4.62),ESMTP ID为MG000011;
2013年3月26日10:50:24+0100
内容类型:多部分/混合;边界=“=========================1598388400==”
MIME版本:1.0
收件人:=?utf-8?q?Hans_M=C3=BCller?=
发件人:我的服务
答复:
主题:=?utf-8?q?Hans\u M=C3=B你的票=
X-UC-Weight:[#]51
X-CC-诊断:不存在标题“日期”(51)
--===============1598388400==
内容类型:文本/纯文本;charset=“us ascii”
MIME版本:1.0
内容传输编码:8比特
带有一些字符的消息,例如。。。
--===============1598388400==--

感谢您的帮助

我们使用以下代码:

message=mail.EmailMessage()

message.subject=“=?utf-8?B?%s?=%base64.b64编码(u“üäö”.encode(“utf-8”))


message.html=u“üäö”.encode('ascii','xmlcharrefreplace')

我们使用以下代码:

message=mail.EmailMessage()

message.subject=“=?utf-8?B?%s?=%base64.b64编码(u“üäö”.encode(“utf-8”))


message.html=u“üäö”.encode('ascii','xmlcharrefreplace')

我想避免使用html。好吧,当没有机会的时候…谢谢你的快速回复!我想避免使用html。好吧,当没有机会的时候…谢谢你的快速回复!