python 3.5 imaplib 以纯文本格式读取 gmail

python 3.5 imaplib read gmails as plain text

mail = imaplib.IMAP4_SSL('imap.gmail.com', 993)
username = 'MyGmail@gmail.com'
password = 'MyPasswordHere'
mail.login(username, password)    
mail.select('INBOX')

typ, data = mail.search(None, 'ALL')
for num in data[0].split():
    typ, data = mail.fetch(num, '(RFC822)')
    print(data)
    exit()

这是整个输出的一部分:(可读性不是很好)

[(b'1 (BODY[1] {1115}', b'\r\nHej Bjango 为了确保 Bjango 的页面 hj=C3=A6lps 你到 n=C3=A5 =\r\ndine m=C3=A5l,这里我们给你一些简单快捷的建议=\r\ndu g=C3=B8re:更新你的个人资料图片和封面图片=\r\nOverf=C3= B8r= C2=A0image Add=C3=B8j 对您的页面的描述 =\r\nTilf=C3=B8j=C2=A0en=C2=A0description 在您的网站中包含一个 link =\r\nTilf= C3= B8j=C2=A0et=C2=A0link sl=C3=A5 更新或图片=\r\np=C3=A5 你的页面 Create=C2=A0et=C2=A0posts 邀请你的朋友来= \r\nsynes 喜欢你的页面 Invite=C2=A0dine=C2=A0venner\r\n\r\nHilsen Facebook-teamet\r\n\r\n\r\n\r\n=3D=3D=3D=3D=3D=3D=3D=3D=3D= 3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\r\n=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D\r\n此消息已发送至 infobjango@gmail.com。如果您不 =C3=B8want =\r\n 接收这些电子邮件以后在 Facebook 上,你必须 f=C3=B8lge =\r\nbelow=C3=A5ende link 取消订阅。\r\nhttps://www.facebook .com/o.php?k=3DAS38jnuCT_H5AdZt&u=3D100015358233656 &mi=\r\nd=3D548339b6125b3G5af6a3e64c38G0G37b\r\nFacebook, Inc.,注意:社区支持,1 Hacker Way, Menlo Park, CA =\r\n94025\r\n\r\n '), b')']

所以这是我的问题 如何使我收到的邮件的主要部分可读?


我所说的可读性的例子:

亲爱的詹戈

这是一封邮件,没有任何"<<td style=3D"font-size: 16px; =\r\npadding-bottom: 26px; text-ali>"完全可以阅读。这很有趣,我只是让这封邮件中本应可读的部分变得不可读 - 我希望你明白我的意思。

最好的问候 Bjango

这种方法并没有完全解决我的可读性问题:

    import email
msg = email.message_from_bytes(data[0][1])
print(msg.get_payload(decode=False))

输出如下:

Hej Bjango For at sikre, at Bjangos side hj=C3=A6lper dig med at n=C3=A5 =
dine m=C3=A5l, giver vi dig her nogle hurtige og nemme forslag til, hvad =
du kan g=C3=B8re:  Opdater dit profilbillede og dit coverbillede =
Overf=C3=B8r=C2=A0billede Tilf=C3=B8j en beskrivelse af din side =
Tilf=C3=B8j=C2=A0en=C2=A0beskrivelse Medtag et link til dit website =
Tilf=C3=B8j=C2=A0et=C2=A0link Sl=C3=A5 en opdatering eller et billede op =
p=C3=A5 din side Opret=C2=A0et=C2=A0opslag Inviter dine venner til at =
synes godt om din side Inviter=C2=A0dine=C2=A0venner

Hilsen Facebook-teamet

这是我打算在输出部分得到的电子邮件:

嗨,Bjango 确保 Bjango 的网站可以帮助您访问 您的目标,我们在这里为您提供一些快速简单的建议 您可以: 更新您的个人资料图片和封面图片 上传图片 添加页面描述 添加说明 在您的网站中包含一个 link 添加 link 查找更新或照片 在您的页面上 创建一个帖子 邀请您的朋友加入 喜欢你的专页 邀请你的朋友

问候 Facebook 团队

Python 3 email parser 应该在这里工作:

import email
msg = email.message_from_bytes(data[0][1])
payload = msg.get_payload(decode=True)

假设您的电子邮件被编码为 MIME 引用可打印数据,您可以继续使用 quopri module:

对其进行解码
import quopri
message = quopri.decodestring(payload).decode('utf-8')

print(message)