imapclient 日期和时间不准确

imapclient date and time inaccurate

我最近开始使用 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 日收到大量消息,方法 returns []。它在我尝试的任何日期都不起作用。好像 'ON' 搜索根本不起作用。所以我尝试另一种方法。

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

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

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

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

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

我认为 ON 和 SINCE 可能使用的是 UTC,而您在 header 中看到的时区是(某些)当地时间。试试按照UTC查询,看看能不能得到你想要的结果。

我使用 datetime 使其工作

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

有点晚了,很抱歉:/