使用Python重新组合以“message / partial”编码的电子邮件消息
作者:互联网
有没有办法在使用Content-Type:message / partial编码的Python电子邮件中重新组合(即第7节“7.3.2.RFC 1521的消息/部分子类型”)?
特别是,给定一组emails,如何将它们合并回原件?即
emails = [...] # a list of `email`.
reassembled_email = merge_emails(emails)
merge_emails必须做什么?有没有Python项目完成这个?
人们可以期待像这样的电子邮件:
From: me@example.com To: me2@example.com Date: Wed, 30 Jun 2010 14:19:45 -0400 MIME-Version: 1.0 Content-Type: message/partial; id="TAN_U_R<0.0000749046c4>"; number=1; total=2 From: me@example.com Subject: To: me2@example.com Date: Wed, 30 Jun 2010 14:19:45 -0400 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="DC_BOUND_PRE_<1277921980.0000744>" This is a multi-part message in MIME format. --DC_BOUND_PRE_<1277921980.0000c4> Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit This E-mail was sent from Your Printer Some random text. --DC_BOUND_PRE_<1277921980.0000744> Content-Type: application/pdf; name="abcdef.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="abcdef.pdf" JVBERi0xLjMKJZKgoooKNCAwIG9iago8PC9UeXBlL1hPYmplY3QKL1N1YnR5cGUvSW1hZ2UK ...
这是我最初的想法:
from email import parser
def merge_emails(emails):
# we can presume emails are ordered correctly and all the parts accounted for
content = ''
for eml im emails:
content += emails.get_payload()
return parser.Parser().parsestr(content)
这会有用吗(就这么简单)?你如何重新组合这封电子邮件?
作为在Python中执行此操作的替代方法,是否有命令行Unix / Mac OS X程序可以执行此操作?
感谢您阅读以及您可能提供的任何信息.
亲切的问候,
布赖恩
解决方法:
以下为我工作:( Ubuntu Linux Thunderbird)
>将每条消息保存到文件夹(例如:part1.dat,part2.dat … partN.dat) – 订单很重要
>合并文件:cat part1.dat part2.dat partN.dat> mail.eml
>使用Thunderbird打开文件. Thunderbird可以理解.eml文件并将其作为电子邮件打开(完全组装)
标签:python,mime,email,rfc822 来源: https://codeday.me/bug/20190621/1258061.html