У меня проблемы с отправкой ответа на ранее отправленное сообщение. Другими словами, мне нужно отправить электронное письмо (emailA), а затем отправить другое электронное письмо в ответ на emailA (emailB) независимо от того, ответил ли получатель на emailA.
Я могу создать черновик и отправить черновик с помощью API. После отправки черновика я получаю идентификатор, вывод выглядит так:
{u'labelIds': [u'SENT'], u'id': u'16303ecfd567afa3', u'threadId': u'16303ecad298cdd1'}
Затем я преобразую этот идентификатор в идентификатор сообщения, используя следующий код:
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), электронное письмо не отображается как ответ.
Кроме того, если я вручную отправлю электронное письмо и ответ на него на тот же внешний адрес, ответ будет отображаться, как и ожидалось (так что это не проблема с отображением в другом домене).
Кроме того, если я отправляю первое электронное письмо (emailA) через API, а затем создаю черновик ответа, черновик отображается как ответ в моем почтовом ящике gmail, но когда я вручную отправляю письмо, оно все равно не отображается как ответ на внешний адрес.