尝试使用pythonista阅读来自gmail的电子邮件
我是Python的新手,能使用imap4访问gmail让我很兴奋 下面是我用来访问电子邮件的代码:尝试使用pythonista阅读来自gmail的电子邮件,python,email,unicode,gmail-imap,Python,Email,Unicode,Gmail Imap,我是Python的新手,能使用imap4访问gmail让我很兴奋 下面是我用来访问电子邮件的代码: from __future__ import print_function import getpass import imaplib import console import collections import re import email import codecs import quopri console.clear() mail = imaplib.IMAP4_SSL('imap
from __future__ import print_function
import getpass
import imaplib
import console
import collections
import re
import email
import codecs
import quopri
console.clear()
mail = imaplib.IMAP4_SSL('imap.gmail.com',993)
my password = getpass.getpass("Password: ")
address = 'sch.e@gmail.com'
print('Which email address (TO) would you like to search: ',end='')
EE = raw_input()
SS = r"(TO "+"\""+EE+"\""+r")"
mail.login(address, mypassword)
mail.select("inbox") #select the box on gmail
print("Checking for e-mails TO ",EE)
typ, messageIDs = mail.search(None,'(SINCE "01-Jan-2014")',SS)
MIDs=messageIDs[0].split()
for mailid in MIDs[::-1]:
resp, data = mail.fetch(mailid,'(RFC822)')
raw_body=data[0][1]
print(raw_body.decode('UTF-8','strict'))
print(quopri.encodestring(raw_body))
msg=email.message_from_string(raw_body)
print(msg)
不幸的是,没有一个print语句包含正确的Umlaute
例如Beste Grüße
有人能给我一个如何处理编码的提示吗?它看起来像Utf-8编码的文本,除了='字符
谢谢!!
Erik电子邮件正文已被字符集编码为字节,然后使用MIME算法将字节编码为7位ASCII码。您必须反转QP编码以获得原始字节,然后您可以使用电子邮件的字符集(不是utf-8)将它们转换为字符串,否则QP编码的文本将改为BEST Gr=C3=BC=C3=9Fe。字符集更可能是iso-8859-1。电子邮件头将告诉您实际的字符集,以及正文是如何编码的QP、base64等。但是,您只获取电子邮件正文,因此还需要使用RFC822.HEADER获取电子邮件头 假设电子邮件编码为ISO-8859-1,使用引用的可打印获取电子邮件标题进行验证。尝试更像这样的方法来解码:
raw_body=data[0][1]
raw_body=quopri.decodestring(raw_body)
raw_body=raw_body.decode('ISO-8859-1')
谢谢您是对的,标题中提到了编码,它还表示引用的可打印!!我使用什么函数来解码并继续使用文本??Python具有功能,其中包括电子邮件、base64和quopri库。我在上面的窗口中输入完整的代码-请让我知道如何进行此操作,以便正确解码Umlaute您仍然没有获取电子邮件标题,只有电子邮件正文。您需要同时获取这两个信息,以便在尝试解码之前检查电子邮件的编码方式。