我正在尝试打印来自特定发件人的所有电子邮件的电子邮件正文,当我运行代码时,当输出此行5H6ONzrsveoHzDAKli/
和更多随机字母和符号时。这是整个代码。谢谢
import imaplib
import pprint
imap_host = 'imap.gmail.com'
imap_user = 'user@googlemail.com'
imap_pass = 'password'
# connect to host using SSL
imap = imaplib.IMAP4_SSL(imap_host)
## login to server
imap.login(imap_user, imap_pass)
imap.select('Inbox')
tmp, data = imap.search(None, '(FROM "specific@gmail.com")')
for num in data[0].split():
tmp, data = imap.fetch(num, '(RFC822)')
#print('Message: {0}n'.format(num))
pprint.pprint(data[0][1])
break
imap.close()
尝试import email
模块,然后使用msg = email.message_from_bytes(data[0][1])
而不是pprint.pprint(data[0][1])
创建消息对象。
data[0][1]
我认为是整个电子邮件,而不仅仅是正文。
之后,您可以遍历消息的各个部分,并找到其中text/plain
部分。那将是你的身体。您可以像这样操作:
for part in msg.walk():
if part.get_content_type() == 'text/plain':
print(part.get_payload())
break