有没有办法在 Python 中重新组合编码的电子邮件消息Content-Type: message/partial
(即RFC 1521的“7.3.2. The Message/Partial subtype”部分)?
特别是,给定一组电子邮件,如何将它们合并回原始邮件?IE
emails = [...] # a list of `email`.
reassembled_email = merge_emails(emails)
merge_emails
必须做什么?有任何 Python 项目这样做过吗?
人们可以期待这样一封电子邮件:
来自:me@example.com 至:me2@example.com 日期:2010 年 6 月 30 日,星期三 14:19:45 -0400 MIME 版本:1.0 内容类型:消息/部分; id="TAN_U_R<0.0000749046c4>"; 数字=1; 总计=2 来自:me@example.com 主题: 至:me2@example.com 日期:2010 年 6 月 30 日,星期三 14:19:45 -0400 MIME 版本:1.0 内容类型:多部分/混合; 边界="DC_BOUND_PRE_<1277921980.0000744>" 这是 MIME 格式的多部分消息。 --DC_BOUND_PRE_<1277921980.0000c4> 内容类型:文本/纯文本;字符集=US-ASCII 内容传输编码:7bit 此电子邮件是从您的打印机发送的 一些随机文本。 --DC_BOUND_PRE_<1277921980.0000744> 内容类型:应用程序/pdf;名称="abcdef.pdf" 内容传输编码:base64 内容处置:附件; 文件名="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 程序可以执行此操作?
感谢您阅读以及您可能提供的任何信息。
亲切的问候,
布赖恩