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答复/答复。
答案 0 :(得分:1)
您可以像这样搜索选定的邮箱:
res, data = self.mail.search(None, 'ALL')
您的数据将如下所示:[b'1 2 3 4 5 6 7 8 9 10 11 12']
,其中12
是所选邮箱中最新电子邮件的UID。您现在可以通过以下方式获取此邮件
self.mail.fetch(data[0].split()[-1], '(RFC822)')
IMAP4.search(charset, criterion[, ...])
返回当前邮箱中所有电子邮件的列表。它们通常按日期排序,第一个是最早的。
为字符集提供None
,以搜索任何邮件,并将条件设置为All
。
请参见Python imaplib documentation
data[0].split()[-1]
返回邮件UID列表的最后一个元素([-1]
)
您正在使用IMAP协议访问邮件服务器。 IMAP代表
Internet邮件访问协议
用于邮件访问,而不是发送邮件。您需要SMTP才能发送邮件。看看this question。