目前,我正在開發一個 Web 應用程序,並希望建立一個 Web 表單以讓使用者透過它編寫電子郵件。因此,他們必須設定自己的電子郵件地址和訊息,然後點擊「提交」後,我的網路應用程式將使用標題中的電子郵件地址將電子郵件發送給收件者FROM
。當然,發送過程是使用我自己的 SMTP 服務完成的,因為我無法從網站訪客存取電子郵件伺服器。
現在,我聽說這可能是個壞主意,因為這些電子郵件很可能會被收件者的伺服器拒絕。然而,我還沒有完全理解為什麼會這樣以及這個過程是如何運作的。我了解到當今用於電子郵件的兩種最常用的反垃圾郵件和欺騙技術是德基姆和SPF。
因此,我想了解為什麼電子郵件會被拒絕,以及 DKIM/SPF 將如何提供協助。
那麼,讓我們從 SPF 開始:
MAIL_FROM
據我了解,收件者的伺服器將使用標頭中的網域和 DNS 系統檢查允許發送郵件的 IP 位址。現在,按照上面的範例,當我在 Web 應用程式中發送電子郵件並將FROM
標頭設定為例如[email protected]
(這是我的網站訪客設定的位址)時,這應該(?)不會影響MAIL_FROM
標頭。因為電子郵件將透過我的電子郵件服務發送,MAIL_FROM
標頭將包含我的網域,據我了解,應該可以發送郵件並透過 SPF。
另一種反垃圾郵件技術是 DKIM:
它將對電子郵件進行簽名,收件者伺服器將在 DNS 中查找以找到正確的公鑰來驗證簽名。在這裡,我不確定這是如何完成的。我知道FROM
標頭將成為簽名的一部分,但收件者伺服器如何檢查 DKIM?是不是又從header看DNS了MAIL_FROM
?如果是的話,我也可以用上面的範例透過DKIM,是嗎?或有域MAIL_FROM
且FROM
相同嗎?我有點迷失了。
所以畢竟我現在明白了,DKIM 和 SPF 對於我的 Web 應用程式都不應該是問題。但是,為什麼這仍然被認為是一個壞主意,而且電子郵件很可能會被拒絕呢?或者我沒有正確理解 DKIM?
我的整體問題:收件者伺服器究竟如何確定電子郵件是否被拒絕?
答案1
你沒有辦法確定。您只能猜測,除非 MX 管理員告訴您出了什麼問題。
訊息拒絕可以基於訊息內、傳輸中或網路上任何地方發現的任何訊息,包括:
- MTA IP 位址/子網
- MTA rDNS 和 FCrDNS
- 來自 rDNS 或 HELO 的 MTA FQDN
- MTA 的 DNSBL 列表
- 有關 Internet 上可用的 MTA FQDN 或寄件者網域的其他信息
- 以前的連接和失敗的歷史記錄
- MAIL FROM 地址或域
- 標頭 FROM 位址或域
- SPF、DKIM、DMARC 等授權方法
- 郵件主題或正文中的關鍵字或序列
- 郵件正文和標題的啟發式評分
設定活動 MX/MTA 不應輕鬆進行。由於大量且持續的垃圾郵件,您需要遵守許多做法,否則您將遭到拒絕或最終進入垃圾郵件堆。最簡單的方法是使用 ISP 的伺服器作為智慧主機 - 您需要先檢查他們的策略。
此外,除非您已獲得授權,否則您不能使用系統中的「外部」寄件者網域。偽造寄件者地址會讓您立即陷入惡意垃圾郵件發送者的境地。此外,您不能簡單地信任用戶在註冊時或任何其他時間提交的任何內容。如果您不驗證電子郵件地址,您的服務將在幾個小時後遭到濫用。