Для тех, кто сталкивался с этим в будущем, я смог разобраться!
Похоже, что установка заголовка threadId
для message['threadId']
, заголовка In-Reply-To
для электронной почтыадреса (отправителя в моем случае) и заголовка References
для идентификатора сообщения MIME достаточно, чтобы получить сообщение для потока на стороне получателя, но не на стороне отправителя.Во многих случаях это было бы хорошо, но я хотел, чтобы почтовый ящик отправителя оставался организованным, поэтому необходимо было создать многопоточность.
Для того, чтобы сообщения направлялись на стороне отправителя, необходимо добавить threadId
к сообщению в качестве дополнительного параметра, вне raw
:
{'raw': base64.urlsafe_b64encode(message.as_string()), 'threadId': thread_id}
Теперь моя create_message
функция выглядит следующим образом:
def create_message(sender, to, subject, message_text, reply_to, thread_id, message_id):
message = MIMEText(message_text, 'html')
message['to'] = to
message['from'] = sender
message['subject'] = subject
if reply_to:
message['threadId'] = thread_id
message['In-Reply-To'] = sender
message['References'] = message_id
return {'raw': base64.urlsafe_b64encode(message.as_string()), 'threadId': thread_id}
return {'raw': base64.urlsafe_b64encode(message.as_string())}
Где:
reply_to
- логическое значение, указывающее, является ли конкретное создаваемое сообщение ответом на поток или новым сообщением thread_id
является message['threadId']
, должно выглядеть примерно так168f809fbb5e9838
message_id
- это заголовок ID сообщения MIME, должен выглядеть примерно так: <CAGvK4+W5G3KnYQmjvcpTJ=OCfvPQeWUHcLJG39JVGX4V3y1efA@mail.gmail.com>
Надеюсь, кто-то найдет это полезным !!