Ich lese eine Mail von stdin mitVerwenden Python eine E-Mail (email.Message) und fügen Sie eine Anlage
message = mailbox.email.message_from_file(sys.stdin)
und möchte hinzufügen, um einen Textdateianhang zu ändern. Ich habe folgendes versucht:
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)
wo maildir = mailbox.Maildir('~/mail')
.
Ich bekomme jedoch eine Nachricht in ~/mail
mit zwei Anlagen ForwardedMessage.eml
und my_attachment.txt
.
Mein Ziel ist es, die ursprüngliche Nachricht (mit den gleichen Überschriften), aber mit der Textdatei beigefügt.
EDIT Lassen Sie mich Ihnen ein Beispiel geben. Originaltext:
To: [email protected]
From: User <[email protected]>
Message-ID: <[email protected]>
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
Mit meinem Code:
Content-Type: multipart/related; boundary="===============7892775444970429949=="
MIME-Version: 1.0
--===============7892775444970429949==
Content-Type: message/rfc822
MIME-Version: 1.0
To: [email protected]
From: User <[email protected]>
Message-ID: <[email protected]>
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==--
Und das ist, was Thunderbird gibt mir (und was ich will):
To: [email protected]
From: User <[email protected]>
Message-ID: <[email protected]>
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--
Ja, der Code gibt mir eine Nachricht wie Ihre. Mutt und Thunderbird zeigen jedoch eine Nachricht mit zwei Anhängen an: die ursprüngliche Nachricht und die Textdatei. – scus