Python - imaplib - 查看特定发件人的邮件

9

我有一个Python脚本,正在检查Gmail的IMAP服务器上的电子邮件,它显示服务器上最新的电子邮件。但是,该电子邮件地址正在接收来自多个不同帐户的电子邮件。如果我想让该脚本仅查看发送给特定发件人的消息,我该怎么做?例如,只有发送到“johndoe@gmail.com”的任何电子邮件将出现。

import imaplib

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('myemail@gmail.com', 'password123')
mail.list()
# Out: list of "folders" aka labels in gmail.
mail.select("inbox") # connect to inbox.

result, data = mail.search(None, "ALL")

ids = data[0] # data is a list.
id_list = ids.split() # ids is a space separated string
latest_email_id = id_list[-1] # get the latest

result, data = mail.fetch(latest_email_id, "(RFC822)") # fetch the email body (RFC822) for the given ID

raw_email = data[0][1] # here's the body, which is raw text of the whole email
# including headers and alternate payloads

提前感谢您!:)


2
当您在mail.search()中搜索所需的邮件消息而不是“ALL”时,会发生什么? - Dave
1个回答

6

更改:

result, data = mail.search(None, "ALL")

to:

result, data = mail.search(None, '(TO "johndoe@gmail.com")')

"Tx. 在这里也可以用作 FROM,以防有人需要帮助。"""result, data = mail.search(None, '(FROM "johndoe@gmail.com")')""" - Je Je

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接