Codage de l'objet de messagerie (SMTP) en Python avec des caractères non-ASCII
Je suis à l'aide de Python module MimeWriter
de construire un message et smtplib envoyer un e-mail construit message est:
file msg.txt:
-----------------------
Content-Type: multipart/mixed;
from: me<me@abc.com>
to: me@abc.com
subject: 主題
Content-Type: text/plain;charset=utf-8
主題
J'utilise le code ci-dessous pour envoyer un mail:
import smtplib
s=smtplib.SMTP('smtp.abc.com')
toList = ['[email protected]']
f=open('msg.txt') #above msg in msg.txt file
msg=f.read()
f.close()
s.sendmail('[email protected]',toList,msg)
- Je obtenir le corps du mail correctement, mais l'objet n'est pas bon,
subject: some junk characters
主題 <- body is correct.
S'il vous plaît suggérer? Est-il possible de spécifier le décodage à être utilisé pour le sujet aussi,
comme spécifié pour le corps. Comment puis-je obtenir l'objet décodé correctement?
source d'informationauteur Rakesh
Vous devez vous connecter pour publier un commentaire.
De http://docs.python.org/library/email.header.html
de plus simple:
Le sujet est transmis comme un en-tête SMTP, et ils sont tenus d'être ASCIIseule. À l'appui des codages dans le sujet, vous devez préfixer le sujet avec tout codage que vous souhaitez utiliser. Dans votre cas, je dirais préfixe de l'objet ?UTF-8?B? ce qui signifie UTF-8Base64 codé.
En d'autres termes, je crois que votre tête devrait plus ou moins ressembler à ceci:
En PHP, vous pouvez aller à ce sujet comme ceci:
En Python: