2010-08-12 460 views
2

我想保存发送的电子邮件的MessageID,以便稍后可以在引用:头中使用它以便于线程化。获取发送邮件的MessageID最简单/最干净的方式是什么?

我在创建MessageID的root/django/trunk/django/core/mail.py(line〜55)中看到。

我想要收集这个值的最佳方式,除了复制/粘贴到新的后端模块,并返回它。也许这是最好的方法?

+0

欢迎来到Stack Overflow。既然你已经解决了你的问题,并记录了答案,请接受答案作为你的问题的答案。这样其他居民就知道你不需要这个问题的任何帮助。 – 2010-08-14 18:49:19

回答

7

好的,我看到我正在浏览旧的悲剧代码。在调用send之前,我应该能够调用django.core.mail.message.make_msgid()并自己填充标头。

-1

不是所有的后端实际上都支持断言一个消息ID(例如SES设置它自己的消息ID并将它返回给它的发送响应)。实际上,你可以拉出返回/生成/集的消息ID,如果你使用较新的EmailMessage类,一旦你打电话。发送(你可以提取实例返回的消息ID),例如(约1.1):

e=EmailMessage(
      subject, 
      content, 
      from_email, 
      recipient_list, 
      headers = headers, 
     ) 
e.send() 
message_id = e.extra_headers.get('Message-Id',None) 
+0

当recipient_list有很多电子邮件ID时,它是如何工作的。我们应该为不同的收件人获取不同的message_id。 – 2013-04-17 14:25:58

+0

多个收件人都将具有相同的邮件ID,因为您没有(即使在SMTP级别)创建多条邮件,创建一条邮件,并且SMTP协议会将该邮件复制到多个收件人。我已经测试过SES并确认。 – Darb 2013-04-28 11:07:30

+2

我无法使EmailMessage正常工作,变量中没有message_id。我搬到了博托,它正确地返回message_id和(message_id,电子邮件)是我唯一的关键。但是我失去了使用SMTP而不是使用API​​的效率。 – 2013-05-02 12:58:05

相关问题