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