【发布时间】:2016-07-08 02:03:37
【问题描述】:
我正在使用标准输入读取邮件
message = mailbox.email.message_from_file(sys.stdin)
并想添加一个文本文件附件。我尝试了以下方法:
new_msg = email.mime.multipart.MIMEMultipart('related')
old_msg = email.mime.message.MIMEMessage(message)
new_msg.attach(old_msg)
att_msg = email.mime.text.MIMEText("Textfile attachment")
att_msg.add_header('Content-Disposition', 'attachment', filename= 'my_attachment.txt')
new_msg.attach(att_msg)
maildir.add(new_msg)
maildir = mailbox.Maildir('~/mail').
但是,我在~/mail 中收到一条消息,其中包含两个附件ForwardedMessage.eml 和my_attachment.txt。
我的目标是获得原始消息(具有相同的标题),但附加文本文件。
编辑让我举个例子。原文:
To: foo@bar.com
From: User <user@mydomain.net>
Message-ID: <56F2AAD2.7030408@mydomain.net>
Date: Wed, 23 Mar 2016 15:40:18 +0100
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Testmessage
使用我的代码:
Content-Type: multipart/related; boundary="===============7892775444970429949=="
MIME-Version: 1.0
--===============7892775444970429949==
Content-Type: message/rfc822
MIME-Version: 1.0
To: foo@bar.com
From: User <user@mydomain.net>
Message-ID: <56F2AAD2.7030408@mydomain.net>
Date: Wed, 23 Mar 2016 15:40:18 +0100
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Testmessage
--===============7892775444970429949==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="atach.txt"
Textfile attachment
--===============7892775444970429949==--
这就是 Thunderbird 给我的(也是我想要的):
To: foo@bar.com
From: User <user@mydomain.net>
Message-ID: <56F2AAD2.7030408@mydomain.net>
Date: Wed, 23 Mar 2016 15:40:18 +0100
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------010607020403070301060303"
This is a multi-part message in MIME format.
--------------010607020403070301060303
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Testmessage
--------------010607020403070301060303
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="atach.txt"
Textfile attachment
--------------010607020403070301060303--
【问题讨论】:
标签: python email attachment mime multipart