Я создал и отправил электронное письмо, используя:
import random
alphabet=list('0123456789')
for i in range(26):
alphabet.append(chr(ord('a') + i))
alphabet.append(chr(ord('A') + i))
def gen_random_string(length=30):
return ''.join([alphabet[random.randint(0, len(alphabet) - 1)] for i in range(length)])
from email.message import EmailMessage
import email
import smtplib
msg = EmailMessage()
msg['From'] = my_email
msg['To'] = other_email
msg.set_content(text)
msg['Message-ID'] = email.utils.make_msgid(idstring=gen_random_string(), domain="MY-DOMAIN")
s = smtplib.SMTP('smtp.gmail.com', '587')
s.starttls()
s.login(credentials.login, credentials.password)
s.send_message(msg)
s.quit()
Однако Gmail заменил его:
Message-ID: <5e7f5e01.1c69fb81.47373.ca02@mx.google.com>
X-Google-Original-Message-ID: <158540544125.4261.11383854704184591387.n6h3EeqHMnoMCVVSkrgbCqlSyCeTfv@MY-DOMAIN>
В соответствии с https://groups.google.com/forum/#! Topic / comp. mail.sendmail / gkRdBwka4iw :
Да, похоже, gmail перезаписывает идентификатор сообщения только в том случае, если вы отправили его в неправильном формате.
В общем, я хочу получить идентификатор сообщения произвольно отправленного сообщения (не только из учетных записей Gmail). Я не понимаю, если проблема в электронной почте python или Gmail.
[UPD]: без idstring все работает нормально.