how to get message-id of email sent from smtplib


I want to record users reply to my mail and display it as thread in my application. For this purpose I am using help of message-id in present in the email head. When I sent a mail I can see message-id being printed on the screen how do i get this message-id. Also the message-id created by me is overrided. my code is as below.

import smtplib
from email.mime.text import MIMEText

subject = 'Hello!'
message = 'hiii!!!'
email = '[email protected]'
send_from = '[email protected]'
msg = MIMEText(message, 'html', 'utf-8')
msg['Subject'] = subject
msg['From'] = send_from
msg['To'] = email
msg['Message-ID'] = '01234567890123456789abcdefghijklmnopqrstuvwxyz'
send_to = [email]

smtp_server = ''
smtp_port = 587
user_name = 'abcd'
password = 'abcd'
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.sendmail(send_from, send_to, msg.as_string())

except Exception, e:
    print e


Use email.utils.make_msgid to create RFC 2822-compliant Message-ID header:

msg-id = [CFWS] "<" id-left "@" id-right ">" [CFWS]

Answered By – eigenein

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published