Python:imaplib如何仅获取主要电子邮件(Gmail)

时间:2018-07-02 23:59:20

标签: python gmail-imap imaplib

Gmail会自动将电子邮件置于三个不同的标签下:“主要”,“社交”,“促销”,当我尝试阅读带有以下代码的最新电子邮件时,它将忽略所有标签。如何仅在“主要”标签下获取电子邮件?我应该使用另一个文件夹名称吗?

M.select("INBOX")
v_start_date = (datetime.date.today() - datetime.timedelta(days_limit)).strftime("%d-%b-%Y")
v_result, v_mail = M.uid('search', None, '(SENTSINCE {date})'.format(date=v_start_date))

imaplib代码示例: https://gist.github.com/robulouski/7441883

Gmail收件箱屏幕截图:

Gmail inbox sample

1 个答案:

答案 0 :(得分:0)

如果使用GMAIL IMAP Extensions,则可以使用X-GM-RAW以gmail查询语言进行自定义搜索。这是获取主要类别中最近的UID列表的示例:

a UID SEARCH SINCE 1-May-2018 X-GM-RAW "Category:Primary"
* SEARCH 25032 25033 25034 25035 25036
a OK SEARCH completed (Success)

这是“促销”标签:

a UID SEARCH SINCE 1-May-2018 X-GM-RAW "Category:Promotions"
* SEARCH 25026 25028 25030 25031
a OK SEARCH completed (Success)

在Python中,这可能类似于:

m.uid('search', 'SINCE 1-May-2018 X-GM-RAW "Category:Primary"')