我有一封电子邮件,我正在阅读Python电子邮件库,我需要修改附件。电子邮件消息类具有“附加”方法,但没有“分离”之类的内容。如何从多部分邮件中删除附件?如果可能的话,我想在不重新创建消息的情况下这样做。
基本上我想:
答案 0 :(得分:3)
嗯,根据我的经验,在你工作的环境中,一切都是Message
个对象。消息,它的部分,附件,一切。所以,要完成你想做的事,你需要
Message
对象)Message
。重申一下,你正在使用的是一个树,其中Message
对象与.is_multipart()== True是节点和Message
对象与.is_multipart()== False是端节点(它们的有效载荷是一个字符串,而不是一堆Message
个对象)。
答案 1 :(得分:3)
我想出的方法是:
答案 2 :(得分:2)
set_payload()
可能会有所帮助。
set_payload(payload[, charset])
将整个消息对象的有效负载设置为有效负载。客户有责任确保有效载荷不变量。
快速互动示例:
>>> from email import mime,message
>>> m1 = message.Message()
>>> t1=email.MIMEText.MIMEText('t1\r\n')
>>> print t1.as_string()
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
t1
>>> m1.attach(t1)
>>> m1.is_multipart()
True
>>> m1.get_payload()
[<email.mime.text.MIMEText instance at 0x00F585A8>]
>>> t2=email.MIMEText.MIMEText('t2\r\n')
>>> m1.set_payload([t2])
>>> print m1.get_payload()[0].as_string()
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
t2
>>>