我是编程的新手,我正在尝试构建一个自动播放器,以将MSG发送到特定的电子邮件地址。

使用if语句,我可以检查收件箱中某个地址是否有电子邮件,我可以发送电子邮件,但是如果该地址有多个电子邮件该特定地址的电子邮件。

我试图将其用作循环:

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([邮箱[,readonly]])
选择一个邮箱。返回的数据是邮箱中消息的计数(存在响应)。默认的邮箱是“收件箱”。如果设置了可读标志,则不允许对邮箱进行修改。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top