如何在python中阅读特定电子邮件

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

我有以下代码:

import imaplib
import email





imap = imaplib.IMAP4_SSL('imap.naver.com')
id = '[email protected]'
pw = '123'
imap.login(id, pw)


imap.select('inbox')
status, data = imap.uid('search', None, '(HEADER FROM "[email protected]")')

if status == 'OK':
    if data[0]:
        mid = data[0].split()[0]
        print('mail id', mid)
        print(imap.fetch(mid, '(UID BODY[HEADER.FIELDS (HEADER FROM)])'))

它提出了FETCH command error: BAD [b'Error in IMAP command FETCH: Invalid messageset']

print (status, data)

返回

OK [b'3769 3838 3845 3896 3907 3916 3961 3978 3989 3991 3993 4002 4017 4059 4069 4607 4608 4612 4613']

我的代码出什么问题了?

我如何阅读特定的电子邮件?

python-3.x email imaplib
1个回答
0
投票

我认为这只是编码问题。尝试将其从字节转换为字符串:

mid = mid.decode('ASCII')

有关完整数据集,请尝试:

msgnums = data[0].decode('ASCII').replace(' ',',')

希望这会有所帮助! :)

© www.soinside.com 2019 - 2024. All rights reserved.