Question

I'm using imap to retrieve mails from a server which works fine. I'm fetching the mails in RFC 822 like so:

r, data = mailserver.fetch(mailnr, '(RFC822)')

This gives me decipherable mails for the most part but now I have a multipart mail that looks like this:

From : xxx xxx

To : xxx xxx

Subject : =?utf-8?Q?online_verf=C3=BCgbar_-_TESTQUELLE_f=C3=BCr_Regel?= =?utf-8?Q?-_u_Benachrichtigungdienst_()?=

Content-Type : multipart/alternative; boundary="----=_NextPart_457512452482695058637"

Content-Transfer-Encoding : None

MIME-Version : 1.0

Payload:

=20 =20 sourcename:TESTQUELLE f=C3=BCr Regel- u Benachrichtigungdienst;csi:123456= ;publishdate:05=2E11=2E2013

The mail appears to be utf-8 but somehow the text is also url-encoded or something like that.

It seem like url encoded only instead of "%" "=" is used.

Any ideas on how i get this to look like normal text ?

Was it helpful?

Solution 2

Finally found this:

mail.get_payload(decode=1).decode('utf-8')

I've only used get_payload() which gave me that string.

OTHER TIPS

The data appears to be unicode text that has been encoded as UTF-8, and then encoded as quotable-printable. There is a module "quopri" to encode / decode this - http://docs.python.org/3.3/library/quopri.html.

If you use quopri.decodestring to decode to UTF-8, and then decode that to unicode, yuo should be able to read it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top