使用GAE python接收邮件,但是邮件正文中包含意外信息
Posted
技术标签:
【中文标题】使用GAE python接收邮件,但是邮件正文中包含意外信息【英文标题】:Using GAE python to receive email, but the Body of the message contains unexpected information 【发布时间】:2015-02-10 02:23:29 【问题描述】:我正在接收到 GAE python 应用程序的电子邮件。 'to' 和 'sender' 字段内容符合预期,但正文包含实际消息正文之前的附加信息。如何在不添加消息信息的情况下仅获取实际消息?
添加的信息如下;
来自没人 2014 年 12 月 11 日星期四 13:48:29 内容传输编码:7bit MIME 版本:1.0 内容类型:文本/纯文本; charset="utf-8"
我的代码如下;
message = mail.InboundEmailMessage(self.request.body)
a, b = message.to.split('<',1)
recip, c = b.split('@', 1)
logging.debug("The email was to: %s" % recip.upper())
if recip.upper() == "MESSENGER":
self.process_Messenger(message)
if recip.upper() == "SUPPORT":
#Will add code to forward the email to actual support message box and send a reply.
logging.debug("We received an email for SUPPORT")
return
def process_Messenger(self, message):
logging.debug("In process_Messenger code")
# Email subjects to Messenger should start with 'Re: ' plus the assemblyid
.
.
# Construct the message
messageid = LHMessage.construct_message(my_lhmessage, "assemblyid", message.body, "threadid", "sender")
.
.
construct_message 的代码是;
def construct_message(self, assemblyid, pmessage, threadid, sender):
logging.debug("In construct_message code")
message = str(pmessage)
logging.debug("Processing message: %s" % message)
调试信息是;
处理消息:来自 nobody Thu Dec 11 13:48:29 2014 content-transfer-encoding: 7bit MIME-Version: 1.0 Content-Type: text/plain; charset="....
【问题讨论】:
【参考方案1】:GAE 文档here 在处理 InboundEmailMessage 时有些误导,它继承自 EmailMessage,但不包含预期的漂亮文本正文:(来自链接:正文:“消息。”)
您可以改用“正文”属性,它将消息拆分为文本和 html 正文。
我是这样使用的:
text_bodies = message.bodies('text/plain')
for content_type, body in text_bodies:
text = body.decode()
更多信息请参见this link。
【讨论】:
以上是关于使用GAE python接收邮件,但是邮件正文中包含意外信息的主要内容,如果未能解决你的问题,请参考以下文章
Mailkit - 接收从苹果邮件发送的消息时没有附件或 html 正文
通过Python中的smtp.gmail.com在GAE上发送电子邮件