代码之家  ›  专栏  ›  技术社区  ›  Bjango

python 3.5 imaplib将Gmail读取为纯文本

  •  1
  • Bjango  · 技术社区  · 7 年前
    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()
    

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


    我所说的可读性示例:

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

    致以最诚挚的问候

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

        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
    

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

    dine ml,giver vi dig her nogle hurtige og nemme forslag til,hvad Overfrer billeder Tilfj en beskrivelse af din侧 Tilfj et link Sl en opdatering eller et billede op p din侧Opret et OPLAG邀请者dine venner til at

    希尔森脸书团队

    1 回复  |  直到 7 年前
        1
  •  1
  •   jsalonen    7 年前

    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)