J'envoie un message de mon compte Google à mon adresse e-mail GAE:Comment consigner les détails d'un e-mail dans la console d'administration AppEngine?
Content-Type: text/plain; charset=KOI8-R
Content-Transfer-Encoding: base64
Ensuite, utilisez le code suivant:
logging.debug('Received personal inbound mail from: %s, to: %s, subject: %s' % (mail_message.sender, mail_message.to, mail_message.subject))
body = ''
for b in mail_message.bodies('text/plain'):
body_type, pl = b # content encoding, plain text
if pl.encoding:
body = pl.payload.decode(pl.encoding)
else:
body = pl.payload
if body:
logging.debug('Inbound personal mail body: %s' % (body))
En conséquence, je vois ce qui suit dans la console:
Received personal inbound mail from: Test <[email protected]>, to: [email protected], subject: Readable russian text
Inbound personal mail body: ������, ��� �������� ���������
Ie le sujet est lisible, mais le corps ne l'est pas.
Quand je vérifie ce que je reçois, je vois ce qui suit:
text/plain, From nobody Mon Apr 15 17:15:34 2013
content-transfer-encoding: base64
MIME-Version: 1.0
Content-Type: text/plain; charset="koi8-r"
8NLJ18XULCDc1M8g1MXT1M/Xz8Ug08/Pwt3
Si je fais:
body = pl.payload.decode(pl.encoding).decode('koi8-r')
alors le corps du message est affiché correctement. Mais comment dois-je extraire l'encodage?