python 电子邮件的 IMAP 内容包含一个字符串

python IMAP content of email contains a string

我可以使用 python IMAP

登录 gmail 帐户
imap = imaplib.IMAP4_SSL('imap.gmail.com')
imap.login(myDict["emailUsername"], myDict["emailPassword"])
imap.select(mailbox='inbox', readonly=False)
resp, items = imap.search(None, 'All')
email_ids = items[0].split()
latest_email_id = email_ids[-1]

resp, data = imap.fetch(latest_email_id, "(UID)")
print ("resp= ", resp, " data=", data)
#msg_uid = parse_uid(data[0])
match = pattern_uid.match(data[0].decode("utf-8"))
#print ("match= ", match)
msg_uid = match.group('uid')

我需要确保我收到的最后一封电子邮件的 UID 包含特定字符串 (XYZ)。我不是在寻找 header 主题,而是在寻找电子邮件的内容。我该怎么做?

您可以选择以下几种方式:

  1. 获取消息并遍历文本正文部分以查找您的字符串 -- 例如

  2. 通过在 UID SEARCH 命令中向服务器提供 'latest_email_id' 和您的搜索条件,让服务器进行搜索。对于 Gmail,您甚至可以使用 X-GM-RAW 属性来使用 GMail Web 界面支持的相同语法。有关详细信息,请参阅 https://developers.google.com/gmail/imap/imap-extensions