长话短说,我创造了一个新谷歌帐户,并与其他几个账户,它(每1000消息),其中我进口。所有进口到达的消息,为未读,但我需要他们出现阅读。

我有一点点经验,蟒蛇,但我只使用邮件和imaplib模块,用于发送邮件,而不处理帐户。

有没有一种方法来散进程中的所有项目的一个电子邮件收件箱,只是mark的消息超过一个指定日期作为阅读?

有帮助吗?

解决方案

typ, data = M.search(None, '(BEFORE 01-Jan-2009)')
for num in data[0].split():
   M.store(num, '+FLAGS', '\\Seen')

这是代码的在 imaplib文档页面的稍作修改存储方法。我发现搜索标准从 RFC 3501 使用。这应该让你开始。

其他提示

根据菲利普*T.的回答上述和 RFC3501RFC2822, 我建立了一些代码行为标记邮件超过10天,因为阅读。一个静态的清单用于个月缩写名称。这不是特别优雅,但Python%b的格式串区域相关,这可能会得到不愉快的意外。所有IMAP命令UID基础。

import imaplib, datetime

myAccount = imaplib.IMAP4(<imapserver>)
myAccount.login(<imapuser>, <password>)
myAccount.select(<mailbox>)

monthListRfc2822 = ['0', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
                    'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
beforeDate = datetime.datetime.today() - datetime.timedelta(days = 10)
beforeDateString = ("(BEFORE %s-%s-%s)"
                    % (beforeDate.strftime('%d'),
                       monthListRfc2822[beforeDate.month],
                       beforeDate.strftime('%Y')))
typ, data = myAccount.uid('SEARCH', beforeDateString)
for uid in data[0].split():
    myAccount.uid('STORE', uid, '+FLAGS', '(\Seen)')

顺便说一句:我不知道,为什么"-"已经被用作一个日期分隔在检索字符串在我的情况(鸽舍IMAP server)。我似乎相矛盾RFC2822.然而,与简单空白作为分隔只有在返回IMAP错误。

而不是试图解析我们的HTML,为什么不直接使用IMAP接口?按日期把它挂到一个标准的邮件客户端,然后就分类和标记要为已读取的。

只要到Gmail的web界面,请按照日期进行高级搜索,然后选择所有,并标记为已读。

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