0
我正在尝试创建一个应用程序,需要递归检查新电子邮件的电子邮件地址,然后执行其他一些操作;不过,我在获取电子邮件正文时遇到了一些问题。我在imapclient旁边使用了pyzmail模块,并且使用了自动化镗孔工具(python 3.6)。这是我的代码:通过Pyzmail模块递归获取电子邮件正文
mail = imapclient.IMAPClient('imap.gmail.com', ssl=True)
mail.login('email', 'password')
mail.select_folder('INBOX', readonly=False)
uid = mail.gmail_search('NC')
for i in uid:
message = mail.fetch(i, ['BODY[]'], 'FLAGS')
msg = pyzmail.PyzMessage.factory(message[i][b'BODY[]'])
msg.html_part.get_payload().decode(msg.text_part.charset)
但它不工作。我基本上已经尝试过不同形式的代码,但无济于事,真的没有那么多可以帮助我的例子。我有点蟒蛇新手。任何人都可以帮忙吗? 谢谢,
编辑
我意识到,我犯了一个错误,并固定了一下代码:
server = imapclient.IMAPClient('imap.gmail.com', ssl=True)
server.login('[email protected]', 'rabbitrun88ve')
server.select_folder('INBOX', readonly=True)
uids = server.gmail_search('NC')
for i in uids:
messages = server.fetch(i, ['BODY[]'])
msg = pyzmail.PyzMessage.factory(messages[b'BODY[]'])
我遇到的问题是与最后一行,这是我不知道如何使用迭代器创建的变量进行馈送。它抛出了这条消息:
ValueError: input must be a string a bytes, a file or a Message
我没有看到你的“递归”在这里的意思。你的问题陈述中没有递归。 – Max
@Max我正在尝试将包含NC的电子邮件的内容作为主题。所以如果有3封电子邮件涉及这个主题,我想提取这些信息。例如:如果一封电子邮件的内容是“你好,这是一个测试”,那么这就是我想要的。也许我用递归的术语来说是错误的。对于那个很抱歉。 –