繁体   English   中英

如何使用python迭代收件箱中的每封电子邮件?

[英]How do you iterate through each email in your inbox using python?

我是编程新手,我正在尝试构建一个autorespoder来将msg发送到特定的电子邮件地址。

使用if语句,我可以检查收件箱中是否有来自某个地址的电子邮件,我可以发送电子邮件,但是如果该地址有多封电子邮件,我该如何制作for循环来为每个地址发送电子邮件来自该特定地址的电子邮件

我试着把它用作循环:

for M.search(None, 'From', address) in M.select(): 

但我得到错误:“无法分配给该函数调用”

正如您声称自己是编程新手,我最好的建议是:始终阅读文档。

也许你应该先阅读一个教程


文档提供了一个示例:

import getpass, imaplib

M = imaplib.IMAP4()
M.login(getpass.getuser(), getpass.getpass())
M.select()
typ, data = M.search(None, 'ALL')
for num in data[0].split():
    typ, data = M.fetch(num, '(RFC822)')
    print 'Message %s\n%s\n' % (num, data[0][3])
M.close()
M.logout()

你有没有尝试过?


关于你的代码:

定义for循环时 ,它应该是:

for x in some_data_set:

x是一个变量,它一次保存一个项的值(并且只能在for循环体中访问(有一个例外,但这在这里并不重要))。

你在做什么与imaplib模块无关,只是错误的语法。

顺便说一句。 .select()选择邮箱,仅返回邮箱中的邮件数 即只是一个标量值,没有可以迭代的序列:

IMAP4.select([mailbox [,readonly]])
选择一个邮箱。 返回的数据是邮箱中的邮件计数(EXISTS响应)。 默认邮箱是“INBOX”。 如果设置了只读标志,则不允许对邮箱进行修改。

(这确实与imaplib模块有关;))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM