获取已发送邮件的MessageID最简单/干净的方法是什么?
我想保存一封已发送邮件的消息ID,这样我就可以在以后的邮件中用它来帮助邮件的关联。
我在root/django/trunk/django/core/mail.py文件的第55行左右看到了消息ID是怎么生成的。
我在想,除了直接复制粘贴到一个新的后端模块并返回这个值之外,还有没有更好的方法来收集这个值。也许这样做就是最好的方法?
2 个回答
1
并不是所有的后端都支持你自己设置消息 ID(比如 SES 会设置它自己的消息 ID,并在发送响应中返回这个 ID)。如果你使用较新的(大约 1.1 版本?)EmailMessage 类,你可以在调用 .send() 方法后,从实例中提取返回的消息 ID,例如:
e=EmailMessage(
subject,
content,
from_email,
recipient_list,
headers = headers,
)
e.send()
message_id = e.extra_headers.get('Message-Id',None)
12
好的,我发现我在查看一些非常老旧的代码。我应该可以调用 django.core.mail.message.make_msgid() 这个函数,然后自己填充邮件的头部信息,最后再发送邮件。