传入消息的原始MIME树结构如下(使用email.iterators._structure(msg)):
multipart/mixed
text/html (message)
application/octet-stream (attachment 1)
application/octet-stream (attachment 2)
通过GMail进行回复,结果如下:
multipart/alternative
text/plain
text/html
即它们并不像我想象的那么聪明,只是丢弃附件(好),并提供明确重组“引用内容”的文本和HTML版本.
我开始认为这就是我应该做的,只是回复一个简单的消息,因为丢弃附件没有太多的意义保留原始的消息.
不过,也可以回答我的原始问题,因为我已经弄清楚如何现在无论如何.
首先,使用文本/普通占位符替换原始消息中的所有附件:
import email
original = email.message_from_string( ... )
for part in original.walk():
if (part.get('Content-Disposition')
and part.get('Content-Disposition').startswith("attachment")):
part.set_type("text/plain")
part.set_payload("Attachment removed: %s (%s, %d bytes)"
%(part.get_filename(),
part.get_content_type(),