gpt4 book ai didi

python - 如何回复收件箱中的最后一封电子邮件(IMAP4)?

转载 作者:太空宇宙 更新时间:2023-11-04 04:23:23 28 4
gpt4 key购买 nike

Python IMAP4 如何回复具有给定 UID 的电子邮件或收件箱中的最后一封电子邮件

我已经能够使用 IMAP4 登录我的 gmail 并获取最后一个 UID,但我不知道如何回复收件箱中的最后一封电子邮件我的 python 自动化代码:

    self.mail = imaplib.IMAP4_SSL('imap.gmail.com')
self.mail.login(self.data["emailUsername"], self.data["emailPassword"])
self.mail.list()
self.mail.select("inbox")
subjectStr = '(HEADER Subject ' + "\"" + mySubject + "\"" + ')'
result, UIDemailsWithGivenSubject = self.mail.uid('search', None, subjectStr)
ids_string = UIDemailsWithGivenSubject[0].decode("utf-8")
ids_string_list = ids_string.split(" ")
self.lastEmailUid = ids_string_list[-1]

现在如何回复上一封电子邮件或使用给定的 UID 回复/回复。

最佳答案

您可以像这样搜索选定的邮箱:

res, data = self.mail.search(None, 'ALL')

您的数据将如下所示:[b'1 2 3 4 5 6 7 8 9 10 11 12'] 其中 12 是所选邮箱中的最新电子邮件。您现在可以使用

获取此邮件
self.mail.fetch(data[0].split()[-1], '(RFC822)')

解释

IMAP4.search(charset, criterion[, ...]) 返回当前邮箱中所有电子邮件的列表。它们通常按日期排序,第一个是最旧的。为字符集提供 None 以搜索任何邮件,条件设置为 All

参见 Python imaplib documentation

data[0].split()[-1] 返回邮件 UID 列表的最后一个元素 ([-1])

回复邮件

您正在使用 IMAP 协议(protocol)访问邮件服务器。 IMAP 代表

Internet Message Access Protocol

它用于消息访问,而不是用于发送邮件。您需要 SMTP 才能发送消息。看看this question .

关于python - 如何回复收件箱中的最后一封电子邮件(IMAP4)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54013333/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com