从电子邮件imap python打印正文

问题描述 投票:0回答:1

[我正在尝试打印来自特定发件人的所有电子邮件的电子邮件正文,当我运行代码I时,会输出此5H6ONzrsveoHzDAKli/的行以及更多随机字母和符号。这是完整的代码。谢谢

import imaplib
import pprint

imap_host = 'imap.gmail.com'
imap_user = '[email protected]'
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 "[email protected]")')
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()
python python-3.x email imap
1个回答
0
投票

尝试使用import email模块,然后使用msg = email.message_from_string(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
© www.soinside.com 2019 - 2024. All rights reserved.