【问题标题】:How to reply to the last email (IMAP4) in inbox?如何回复收件箱中的最后一封电子邮件(IMAP4)?
【发布时间】:2019-05-29 12:20:06
【问题描述】:

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 回复/回复。

【问题讨论】:

    标签: python email imap


    【解决方案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 代表

    互联网消息访问协议

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-28
      • 2015-06-29
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      相关资源
      最近更新 更多