通过Gmail API发送回复

时间:2018-04-26 21:55:23

标签: python email gmail-api reply

我无法向之前发送的邮件发送回复。换句话说,我需要发送一封电子邮件(emailA),然后发送另一封电子邮件回复emailA(emailB),无论收件人是否回复了emailA。

我可以创建草稿,并使用API​​发送草稿。发送草稿后,我得到一个ID,输出如下:

{u'labelIds': [u'SENT'], u'id': u'16303ecfd567afa3', u'threadId': u'16303ecad298cdd1'}

然后,我转换了那个' id'使用以下代码进入Message-ID:

mime_msg = GetMimeMessage(service, "neil@navforward.com", message1['id'])

在上面的例子中,输出是:

<CACJxmNStP826HnWHKP_G=0ju7bGotmCPQ2C9RRWxPGMs9WMmew@mail.gmail.com>

然后,要发送下一封电子邮件(emailB),我将该Message-ID添加到电子邮件的标题中,如下所示:

  message = MIMEText(message_text)
  message['to'] = to
  message['from'] = sender
  message['subject'] = subject

  message['threadId'] = thread_id
  message["In-Reply-To"] = message_id
  message["References"] = message_id

我也确保主题相同。

虽然电子邮件在我的Gmail收件箱中显示为回复,但在发送给Gmail外部的收件人(&#34;外部地址&#34; - Outlook / hotmail)后,该电子邮件不会显示为回复。

此外,如果我手动将电子邮件和对该电子邮件的回复发送到同一个外部地址,则回复会按预期显示(因此这不会影响其他域的显示方式)。

此外,如果我通过API发送第一封电子邮件(emailA),然后创建回复草稿,草稿在我的Gmail收件箱中显示为回复,但是当我手动发送时,该电子邮件仍然不会显示为回复外部地址。

1 个答案:

答案 0 :(得分:0)

Sending messages

  

如果您尝试发送回复并希望电子邮件发送,请制作   确定:

     

Subject标题与References和In-Reply-To标题相匹配   按照RFC 2822 standard