如何获取smtplib发送的电子邮件的消息ID

时间:2014-04-08 13:47:40

标签: python django email smtplib

我想记录用户回复我的邮件并在我的应用程序中将其显示为线程。为此,我在电子邮件头中使用了message-id的帮助。当我发送邮件时,我可以看到屏幕上打印的消息ID如何获得此消息ID。我创建的message-id也被覆盖了。我的代码如下。

import smtplib
from email.mime.text import MIMEText

subject = 'Hello!'
message = 'hiii!!!'
email = 'someone@somewhere.com'
send_from = 'me@example.com'
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 = 'email-smtp.us-east-1.amazonaws.com'
smtp_port = 587
user_name = 'abcd'
password = 'abcd'
try:
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.set_debuglevel(True)
    server.starttls()
    server.ehlo()
    server.login(user_name,password)
    server.sendmail(send_from, send_to, msg.as_string())

except Exception, e:
    print e

1 个答案:

答案 0 :(得分:2)

使用email.utils.make_msgid创建符合RFC 2822的Message-ID标头:

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