1

我最近开始使用imapclient以从我的 Yahoo! 获取电子邮件!帐户。程序比较简单。如下:

yahoo=imap.IMAPClient('imap.mail.yahoo.com', ssl=True)
yahoo.login('myusername', 'mypassword')# cant tell you my username and password, can I?
yahoo.select_folder('Inbox', readonly=True)
# so far, everything is going fine.
yahoo.search(['ON 1-Nov-2015'])

这就是问题所在。我已经在 11 月 1 日收到了大量消息,并且方法返回[]. 它在我尝试的任何日期都不起作用。就好像'ON'搜索根本不起作用。所以我尝试另一种方法。

yahoo.search(['SINCE 1-Nov-2015'])

无论我重新启动程序多少次,返回的电子邮件 UID 都少于实际数量。所以我调查了一下,我认为这可能是问题所在:

yahoo.fetch(11636, 'BODY[]')

11636 是一封电子邮件,其时间戳为 11 月 1 日上午 10:20。相反,返回值表明它是在 11 月 1 日上午 2:20 收到的。我相信这就是问题所在。

也许我错了,这就是问题所在。也许我做错了什么。无论哪种方式,任何帮助或建议都将不胜感激。

4

2 回答 2

2

我用 datetime 让它工作

import datetime
yahoo.search([u'SINCE', datetime.date(2015, 11, 1)])

有点晚的答案,对不起:/

于 2020-01-26T16:34:05.857 回答
0

我认为 ON 和 SINCE 可能使用 UTC,而您在标题中看到的时区是(某些)当地时间。尝试根据 UTC 进行查询,看看是否得到您期望的结果。

于 2015-11-01T11:17:04.480 回答