[廚餘回收] 所有使用 HOTMAIL 的客戶都收不到信!發生什麼事?

最近一個月,陸陸續續收到使用 HOTMAIL 信箱的客戶反應收不到信。實際註冊了一個 HOTMAIL 信箱進行測試,還真的收不到,然後收到退信通知,裡面只有簡簡單單一句:

An error occurred while trying to deliver the mail to the following recipients:

百思不得其解,請同事寫封信問微軟,得到的回覆是:

發送網域 [_______.COM] 不符合所需的身份驗證等級

請確保您為您的網域正確配置以下記錄。如果您對如何設定這些記錄有任何疑問,您也可以參考 Microsoft 和下方提供的其他建議。

DMARC 記錄:
DMARC 記錄加強了 SPF 和 DKIM 記錄的影響,同時告訴接收伺服器如何處理未通過 DMARC 的訊息。

真相大白了,以下是來自微軟 Tech Community 一篇標題為「Strengthening Email Ecosystem: Outlook’s New Requirements for High‐Volume Senders」的文章說明:

對於每天發送超過 5,000 封電子郵件的網域,Outlook 即將要求必須符合 SPF、DKIM 和 DMARC 的驗證標準。不符合規範的郵件將首先被歸類為垃圾郵件;如果問題持續未解決,這些郵件可能最終會被拒收。寄件人很快將需要符合以下要求:

1. SPF (Sender Policy Framework)

  • 寄件網域必須通過 SPF 驗證。
  • 你網域的 DNS 記錄應正確列出授權的 IP 位址或主機。

2. DKIM (DomainKeys Identified Mail)

  • 必須通過 DKIM 驗證,以確認郵件的完整性與真實性。

3. DMARC (Domain-based Message Authentication, Reporting, and Conformance)

  • 至少設為 p=none,並且必須與 SPF 或 DKIM(最好是兩者)其中之一對齊。

關於 SPF、DKIM、DMARC 的說明,可以參考 Cloudflare 一篇標題為 What are DMARC, DKIM, and SPF? 的文章,裡面說得非常詳細。

在 DNS 增加 DMARC TXT 記錄

在我們的 DNS 的設定裡面,SPF 的記錄已經有了,現在只需要增加一筆 DMARC 的 TXT 記錄即可。

  • Name:_dmarc
  • Content:"v=DMARC1; p=none;"

參考資料

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學