[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

How to modify the content of an email

Alex314

1/25/2008 11:00:00 PM

Hello, I'm trying to make a python script that take an email in (raw)
text format, and add a footer to the text (or html) body of the email.

I'm aware of the email and email.mime modules, but I can't figure out
how to identify 'the main text (or html) content' from the email, and
how to be sure that I don't incorrectly identify a txt (or html)
attach as the main content of the email.

By 'main text (or html) content' I mean the text (or html) that is
showed by a Mail User Agent when it display the email to the
recipient.

Thanks in advance.

1 Answer

Gabriel Genellina

1/27/2008 5:45:00 PM

0

En Fri, 25 Jan 2008 20:59:41 -0200, <alejandro.valdez@gmail.com> escribi�:

> Hello, I'm trying to make a python script that take an email in (raw)
> text format, and add a footer to the text (or html) body of the email.
>
> I'm aware of the email and email.mime modules, but I can't figure out
> how to identify 'the main text (or html) content' from the email, and
> how to be sure that I don't incorrectly identify a txt (or html)
> attach as the main content of the email.
> By 'main text (or html) content' I mean the text (or html) that is
> showed by a Mail User Agent when it display the email to the
> recipient.

I suggest you read or overview the MIME specification (RFC 2045 and a few
others), or some introductory text, in order to understand the terminology
and what the email package does.
Simple messages have is_multipart()==False and get_payload() gives you the
message text.
Multipart messages (e.g. having attachments, or an html/plaintext
alternative) have is_multipart()==False and get_payload() returns a list
of its parts. The parts may be Messages too, and can be multipart also.
HTML messages usually have Content-Type: multipart/alternative, coming
first the text part and later the HTML part. You probably will have to
modify both, because it's up to the MUA to decide which part to show.
When you modify an existing part you have to *remove* some headers like
Content-Transfer-Encoding if you don't honor them in the replaced part. By
example, the original may have been encoded in base64 or quoted-printable
(but you didn't notice that because Python decoded the part for you).

--
Gabriel Genellina