繁体   English   中英

通过 Gmail API 发送回复

[英]Send Reply Via Gmail API

我在回复之前发送的消息时遇到问题。 换句话说,我需要发送一封电子邮件(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 之外的收件人(“外部地址”- Outlook/hotmail)后,该电子邮件并未显示为回复。

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

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

发送消息

如果您正在尝试发送回复并希望电子邮件成为线程,请确保:

Subject 标头匹配 References 和 In-Reply-To 标头遵循RFC 2822 标准

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM