【发布时间】: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