Python 电子邮件库 - 如何从现有邮件中删除附件?

joh*_*ald 5 python email mime

我有一封电子邮件,我正在阅读我需要修改其附件的 Python 电子邮件库。email Message 类有“attach”方法,但没有“detach”之类的东西。如何从多部分消息中删除附件?如果可能,我想在不从头开始重新创建消息的情况下执行此操作。

基本上我想:

  1. 加载电子邮件
  2. 删除 mime 附件
  3. 添加新附件

gim*_*mel 3

set_payload()可能有帮助。

\n
\n

set_payload(payload[, charset])

\n

将整个消息对象\xe2\x80\x99s有效负载设置为有效负载。确保负载不变量是 client\xe2\x80\x99s 的责任。

\n
\n

一个快速交互示例:

\n
>>> from email import mime,message\n>>> m1 = message.Message()\n>>> t1=email.MIMEText.MIMEText(\'t1\\r\\n\')\n>>> print t1.as_string()\nContent-Type: text/plain; charset="us-ascii"\nMIME-Version: 1.0\nContent-Transfer-Encoding: 7bit\n\nt1\n\n>>> m1.attach(t1)\n>>> m1.is_multipart()\nTrue\n>>> m1.get_payload()\n[<email.mime.text.MIMEText instance at 0x00F585A8>]\n>>> t2=email.MIMEText.MIMEText(\'t2\\r\\n\')\n>>> m1.set_payload([t2])\n>>> print m1.get_payload()[0].as_string()\nContent-Type: text/plain; charset="us-ascii"\nMIME-Version: 1.0\nContent-Transfer-Encoding: 7bit\n\nt2\n\n>>> \n
Run Code Online (Sandbox Code Playgroud)\n