2010-08-12 461 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

相關問題