不少網友在 Windows Server 2003 上利用 IIS 內建 SMTP 服務自架郵件伺服器,卻發生「能收信、對內發信正常,但無法寄送至外部郵箱(如 163、Gmail)」的情況。這通常源於兩項先決條件未滿足或 DNS 設定缺失。
滿足上述條件仍無法寄出時,八成是 DNS 區域檔未正確設定 MX 記錄(Mail Exchange)。外部郵件伺服器在傳遞郵件前會查詢收件域名的 MX 記錄,若查無記錄或指向錯誤主機,信件會被退信或丟棄。
example.com. IN MX 10 mail.example.com.
mail.example.com. IN A 203.0.113.45 ; 您的公網 IP
同步建議新增 SPF(TXT 記錄)與 PTR(反向解析),提升郵件信譽,減少進垃圾箱機率:
example.com. IN TXT "v=spf1 mx ~all"
45.113.0.203.in-addr.arpa. IN PTR mail.example.com. ; 需向 ISP 申請
telnet mx.163.com 25C:\WINDOWS\system32\LogFiles\SMTPSVC1\)是否出現 550、554 錯誤代碼。若僅需發送系統通知信,建議改用成熟的郵件發送服務(如 SendGrid、Mailgun、阿里云郵件推送)並透過 API/SMTP Relay 發信,免去維護 IP 信譽、反垃圾策略等繁瑣工作。