【问题标题】:Send Reply Via Gmail API通过 Gmail API 发送回复
【发布时间】:2018-10-07 17:00:27
【问题描述】:

我无法回复之前发送的消息。也就是说,我需要先发送一封邮件(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 收件箱中显示为回复,但是当我手动发送时,电子邮件仍然不会显示为回复外部地址。

【问题讨论】:

    标签: python email gmail-api reply


    【解决方案1】:

    Sending messages

    如果您尝试发送回复并希望将电子邮件串起来,请 确定:

    主题标头与参考和回复标头匹配 关注RFC 2822 standard

    【讨论】:

    • 感谢 Noogui!问题基本上是这样的。上面的代码至少看起来完全符合您的建议。但它不起作用。希望有人能帮助我找出我做错了什么,尽管我至少试图完全遵循 GMAIL API 文档。
    • 有什么解决办法吗?我仍在为此苦苦挣扎。
    猜你喜欢
    • 2018-07-21
    • 2019-07-10
    • 2011-03-08
    • 2015-12-11
    • 2018-04-12
    • 2019-01-24
    • 1970-01-01
    • 2012-04-13
    • 2020-01-06
    相关资源
    最近更新 更多