python 3.5 imaplib将gmails读为纯文本

时间:2017-06-29 21:32:24

标签: python-3.x imaplib

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 For sikre,at Bjangos side hj = C3 = A6lper dig med at n = C3 = A5 = \ r \ ndine m = C3 = A5l,giver vi挖掘她的nogle伤害og nemme forslag til,hvad = \ r \ ndu kan g = C3 = B8re:Opdater dit profilbillede og dit coverbillede = \ r \ nOverf = C3 = B8r = C2 = A0billede Tilf = C3 = B8j en beskrivelse af din side = \ r \ nTilf = C3 = B8j = C2 = A0en = C2 = A0beskrivelse Medtag et link til dit website = \ r \ nTilf = C3 = B8j = C2 = A0et = C2 = A0link Sl = C3 = A5 en opdatering eller et billede op = \ r \ n \ n = C3 = A5 din side Opret = C2 = A0et = C2 = A0opslag Inviter dine venner til at = \ r \ nsynes godt om din side Inviter = 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 \ nDenne besked blev sendt til infobjango@gmail.com。Hvis du ikke = C3 = B8nsker = \ r \ nat modtage从Facebook fremover发送电子邮件, skal du f = C3 = B8lge = \ r \ nnedenst = C3 =在afmelde dem的A5ende链接。\ r \ n \ nhttps://www.facebook .com / o.php?k = 3DAS38jnuCT_H5AdZt& u = 3D100015358233656& mi = \ r \ n = 3D548339b6125b3G5af6a3e64c38G0G37b \ r \ nFacebook,Inc.,注意:社区支持,1 Hacker Way,Menlo Park,CA = \ r \ n \ n \ n \ n \ n \ n r \ n \ r \ n'),b')']

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

我的意思是可读的一个例子:

亲爱的bjango

这是一封邮件,完全可读,没有任何"<<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
  • 但是,这是一个巨大的进步

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

Hej Bjango对于sikre,在Bjangos一侧hjælperdigmedinnå dinemål,giver vi挖掘她的nogle hurtige og nemme forslag til,hvad dukangøre:Opdater dit profilbillede og dit coverbillede OverførerbillederTilføjenbeskrivelse af din side Tilføjenbeskrivelse Medtag et link til dit website Tilføj和链接Slåenopdatering eller et billede op pådinside Opret et opslag Inviter dine venner til at synes godt om din side Inviter dine venner

Hilsen Facebook-teamet

1 个答案:

答案 0 :(得分:1)

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

<p id="selection"></p>
<input id="text" type="text" value="123456789" size="2" />
<input type="button" value="Select" id="select" onclick="selectText()">

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

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