我无法确定文本电子邮件的正文是否为base64编码。 如果它然后使用这行代码; 利用jython 2.2.1
dirty=base64.decodestring(dirty)
否则继续正常。
这是我的代码。允许我从电子邮件中提取这些代码:
“Content-Transfer-Encoding:base64”
import email, email.Message
import base64
def _get_email_body(self):
try:
parts=self._email.get_payload()
check=parts[0].get_content_type()
if check=="text/plain":
part=parts[0].get_payload()
enc = part[0]['Content-Transfer-Encoding']
if enc == "base64":
dirty=base64.decodestring(dirty)
elif check=="multipart/alternative":
part=parts[0].get_payload()
enc = part[0]['Content-Transfer-Encoding']
if part[0].get_content_type()=="text/plain":
dirty=part[0].get_payload()
if enc == "base64":
dirty=base64.decodestring(dirty)
else:
return "cannot obtain the body of the email"
else:
return "cannot obtain the body of the email"
return dirty
except:
raise
好的,这段代码现在可以使用了!谢谢所有
答案 0 :(得分:5)
尝试:
enc = msg['Content-Transfer-Encoding']
这是一个标题,所以你无法看到它的身体。你应该能够找到你找到主题的同一个地方。
答案 1 :(得分:0)
这是一个标题,但您必须先从消息中获取有效负载。
它将是:
header = msg.get_payload()[0]
头['内容传输编码']
我正在使用Python 3