Добрый день.
Пытаюсь написать код, который отправляет письмо на указанный почтовый ящик и при необходимости продолжить тему предыдущего сообщения, необходимо, чтобы последующие сообщения были отправлены как ответ на предыдущее, чтобы в Thunderbird все сообщения собирались в дерево, например:
import smtplib
import time
import email
import email.utils
from email.message import Message
def send_new():
fromaddr = 'Robot <robot@test.com>'
toaddr = 'Administrator <admim@test.com>'
subj = 'Notification from Robot'
message = Message()
message.add_header("Message-ID", email.utils.make_msgid())
message.add_header("From", fromaddr)
message.add_header("To", toaddr)
message.add_header("Subject", subj)
print(message)
server = smtplib.SMTP("smtp.test.com:25")
server.starttls()
server.sendmail(fromaddr, toaddr, message.as_string())
server.quit()
return(message.as_string())
def send_reply(LastMsg):
fromaddr = 'Robot <robot@test.com>'
toaddr = 'Administrator <admim@test.com>'
last_msg = email.message_from_string(LastMsg)
message = Message()
message.add_header("Message-ID", email.utils.make_msgid())
message.add_header("From", fromaddr)
message.add_header("To", toaddr)
message.add_header("Subject", "Re: "+last_msg["Subject"])
message.add_header("References", last_msg["Message-ID"])
message.add_header("In-Reply-To", last_msg["Message-ID"])
print(message)
server = smtplib.SMTP("smtp.test.com:25")
server.starttls()
server.sendmail(fromaddr, toaddr, message.as_string())
server.quit()
if __name__ == "__main__":
last = send_new()
time.sleep(2)
send_reply(last)
но Tunderbied сообщения распознаются как отдельные и никак не связывает из, хотя атрибуты References и In-Reply-To содержат Message-ID предыдущего сообщения. Чего еще может не хватать, для связывания сообщений?