「公司的電郵已經寄出,但客戶表示沒有收到,或被歸入 Gmail / Hotmail / Yahoo 的垃圾郵件資料夾」——這是香港企業向我們求助最常見的情況。近九成的問題,都源於 SPF、DKIM、DMARC 三項電郵驗證設定不完善。
當您使用公司網域(例如 yourcompany.com.hk)向 Gmail 或 Microsoft 365 寄信時,對方伺服器並不會無條件信任來源。它會進行檢查:這封郵件是否確實由 yourcompany.com.hk 授權的伺服器寄出?內容是否被竄改過?若無法通過驗證,對方可能將郵件降級、歸入垃圾郵件,甚至直接退回。
SPF、DKIM、DMARC 即為三道「身分證明」,分別解決「哪些伺服器可代表本網域寄信」「內容是否被竄改」「未通過驗證的郵件應如何處理」三個問題。
SPF(Sender Policy Framework)是一份「白名單」,透過 DNS 的 TXT 記錄向外界宣告:哪些 IP 或伺服器獲授權使用本網域寄送郵件。收件方會比對寄件 IP 是否位於此白名單之內。
最簡單的 SPF 記錄範例如下(假設您使用 TsimTung.com 的郵件服務):
yourcompany.com.hk. IN TXT "v=spf1 include:tsimtung.com ~all"
v=spf1。若您使用多個服務供應商(例如同時使用 Google 與 TsimTung),應以 include: 串聯,切勿分別撰寫兩條獨立 SPF 記錄,否則將導致驗證失效。DKIM(DomainKeys Identified Mail)利用一對公開金鑰/私密金鑰,為每封寄出的郵件加上數位簽章。收件方使用您 DNS 上公開的公鑰驗證簽章,確認郵件在傳送過程中未被竄改(例如標題與內容未被更改)。
設定方式是在 DNS 中加入一條 TXT 記錄(以下以選擇器 tsim 為例):
tsim._domainkey.yourcompany.com.hk. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC..."
私密金鑰由您的郵件服務供應商(例如 TsimTung.com)保管,並自動為每封郵件簽章;您只需要在 DNS 中貼上公鑰即可。
DMARC(Domain-based Message Authentication, Reporting & Conformance)可視為 SPF 與 DKIM 的「指揮官」。它向收件方表明:當 SPF 或 DKIM 驗證失敗時,您希望如何處理(歸入垃圾郵件?或直接拒絕 reject?),同時會向您回報報表,讓您掌握是否有他人冒用本網域。
_dmarc.yourcompany.com.hk. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourcompany.com.hk; pct=100"
p=quarantine(歸入垃圾郵件)並開啟 rua 報表,觀察一至兩週,確認沒有誤攔正常郵件後,再考慮改為 p=reject(直接拒絕偽冒郵件)。我們自 1999 年起為香港中小企業提供電郵寄存服務,處理過無數「電郵無法送達 Gmail」的案例。我們會為客戶:
若您不希望自行處理 DNS 設定,交由我們代辦,通常半日至一日內即可完成設定並驗證完畢。
v=spf1,多餘的記錄會導致 SPF 失效。