3

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

4

2 回答 2

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
于 2014-03-22T03:59:44.583 回答
-1

试用收件箱

因为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
于 2018-09-30T21:07:06.730 回答