无法使用imaplib从gmail解析url

时间:2013-09-25 07:17:12

标签: python gmail-imap imaplib

我正在使用imaplib(python)登录gmail收件箱并搜索相应的邮件 但是当我打印这些消息时,消息体内的链接似乎被打破了 随机附加“3D”。

2 个答案:

答案 0 :(得分:2)

' 3D'是' ='的十六进制编码。所以问题是你没有正确解码电子邮件,这可以使用python的email模块和message.get_payload(decode=True)来完成。

这是一个简短的片段:

import imaplib, email
imap_server = "imap.aol.com" #maybe this would be imap.gmail.com for gmail?
conn = imaplib.IMAP4_SSL(imap_server, 993)
conn.login(username, password)
conn.select()
resp, data = conn.uid('FETCH', '1:*' , '(RFC822)')
raw = data[0][1].strip()
message = email.message_from_string(raw)

decoded = message.get_payload(decode=True) #this will be the decoded body of the email message

答案 1 :(得分:0)

尝试Imbox

因为imaplib是一个非常过多的低级库,并且返回难以使用的结果

安装

pip install imbox

用法

from imbox import Imbox

with Imbox('imap.gmail.com',
        username='username',
        password='password',
        ssl=True,
        ssl_context=None,
        starttls=False) as imbox:

    all_inbox_messages = imbox.messages()
    for uid, message in all_inbox_messages:
        message.sent_from
        message.sent_to
        message.subject
        message.headers
        message.message_id
        message.date
        message.body.plain
        message.body.html
        message.attachments