美好的一天!
對不起,這麼「清楚」的問題,讓我解釋一下。在我的「程序」中,我通過(例如)gmail SMTP服務器發送一些電子郵件。假設我發送的每封電子郵件在標題中都包含一些唯一ID(由我生成)。是否有機會,從gmail(例如,用python imaplib)檢索消息後,我會再次獲得該唯一ID(在標題中)?
謝謝發送郵件通過SMTP保證ID
回答
一般來說,MTA將保留您引入的任何消息標題。中繼MTA都required to do so:
正如在6.4節討論的,中繼SMTP有沒有需要檢查或者在消息數據的報頭部分或身體 行爲,並不得 這樣做,除了增加自己的「收到:「標題字段(第4.4節) ,並可選擇嘗試檢測郵件系統中的循環(請參見 第6.3節)。當然,這種禁止也適用於這些頭域或文本的任何 修改(另請參閱第7.9節)。
一般來說,接收MTA還會添加與消息接收,垃圾郵件檢查,循環檢測等相關的更多標題。所以是的,無論您使用哪個目標SMTP服務器,GMail或其他方式,您都幾乎可以確保安全。
如果ID確實是唯一的,您可能需要考慮將它們用作your Message-ID
header value的一部分。使用Message-ID
用於此目的的好處是,當用戶回覆您的消息時,它們通常包括在其In-Reply-To
和/或References
頭Message-ID
值:
「消息ID:」字段提供了一個獨特的消息標識符 涉及特定消息的特定版本。消息標識符的唯一性由 生成的主機保證(見下文)。該消息標識符旨在是機器可讀的並且不一定對人有意義。消息 標識符恰好屬於特定消息的一個版本; 對郵件的後續修訂每收到一個新郵件 標識符。
創建對消息的回覆時使用「In-Reply-To:」和「References:」字段。它們保存原始消息的消息標識符和其他消息的消息標識符(例如,在回覆本身是應答的消息的情況下,爲 )。「In-Reply-To:」字段可用於標識新消息是回覆的消息(或 消息),而「參考:」字段可用於標識以下消息的「線索」: 談話。
我只是做了一些測試,看起來可能並且非常簡單。
我使用Mail.php擴展來實現這種情況(應該沒關係,但是)。我在發送消息之前添加了一個額外的標題(「Trevor」=>「我的測試」)。我在Gmail中收到郵件並做了一個「顯示原始郵件」,其中包含標題。
然後我拉下這條消息(也通過PHP),並且頭部包含我輸入的自定義行。
- 1. 通過C#窗體發送smtp郵件?
- 2. 用phpmailer通過smtp發送郵件
- 3. 在Perl中通過SMTP發送郵件
- 4. 通過SMTP發送電子郵件
- 5. SMTP郵件發送
- 6. 試圖通過發送郵件快捷郵件,Gmail的SMTP,PHP
- 7. 使用Java郵件通過Gmail SMTP發送郵件的問題
- 8. smtp服務器用於通過java郵件api發送郵件
- 9. 是否可以通過smtp通過bash腳本發送郵件?
- 10. 從Laravel通過Rackspace通過SMTP發送郵件
- 11. 用PHP發送HTML郵件SMTP認證
- 12. 用smtp發送郵件
- 13. SMTP:發送電子郵件
- 14. SMTP不發送HTML郵件
- 15. 發送郵件與SMTP SendAsync
- 16. SMTP發送優先郵件
- 17. 用SMTP發送Gmail郵件
- 18. SMTP電子郵件發送
- 19. 使用SMTP服務器通過電子郵件發送附件
- 20. 取消使用smtp發送郵件SMTP
- 21. PHP-發送不帶郵件的SMTP驗證郵件()
- 22. 通過聯繫表格發送郵件到電子郵件ID
- 23. 如何通過Java從任何郵件ID發送郵件?
- 24. 從id發送+的Asp.net郵件已被寫入smtp用戶ID
- 25. 通過Java和Postfix服務器發送SMTP郵件
- 26. 如何通過微軟交換雲用java發送smtp郵件
- 27. 通過SMTP使用PHPMailer發送電子郵件時出錯
- 28. 通過GMail SMTP在REBOL 2中發送電子郵件
- 29. Windows Azure通過SMTP中繼發送電子郵件
- 30. 在C#中使用BCC通過SMTP發送郵件