gpt4 book ai didi

python - 电子邮件正文有时是一个字符串,有时是一个列表。为什么?

转载 作者:太空狗 更新时间:2023-10-29 21:12:52 26 4
gpt4 key购买 nike

我的应用程序是用 python 编写的。我正在做的是在 postfix 收到的每封电子邮件上运行一个脚本,并对电子邮件内容做一些事情。 Procmail 负责运行将电子邮件作为输入的脚本。当我将输入消息(可能是文本)转换为 email_message 对象(因为后者派上用场)时,问题就开始了。我正在使用 email.message_from_string(其中 email 是默认的电子邮件模块,带有 python)。


导入电子邮件
消息 = email.message_from_string(original_mail_content)
message_body = message.get_payload()

此 message_body 有时会返回一个列表 [email.message.Message 实例,email.message.Message 实例],有时会返回一个字符串(传入电子邮件的实际正文内容)。为什么。甚至我还发现了一个观察结果。当我浏览 email.message.Message.get_payload() 文档字符串时,我发现了这个..
"""有效载荷将是一个列表对象或一个字符串。如果你改变列表对象,您就地修改消息的有效负载....."""

那么我如何使用通用方法通过 python 获取电子邮件正文?请帮帮我。

最佳答案

好吧,答案是正确的,你应该阅读文档,但是对于通用方法的示例:

def get_first_text_part(msg):
maintype = msg.get_content_maintype()
if maintype == 'multipart':
for part in msg.get_payload():
if part.get_content_maintype() == 'text':
return part.get_payload()
elif maintype == 'text':
return msg.get_payload()

这很容易造成一些灾难,因为可以想象这些部分本身可能有多个部分,而且它实际上只返回第一个文本部分,所以这也可能是错误的,但你可以玩一下。

关于python - 电子邮件正文有时是一个字符串,有时是一个列表。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/594545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com