郵件 SPF DKIM DMARC 已經是非做不可的設定

隨著網路上垃圾信越來越氾濫,國際間打擊垃圾郵件的力道也越來越強,《沛盛資訊》在2019年協助客戶發送電子報發現,過去即使沒有設定郵件的SFP、DKIM、DMARC,仍然可以正常發送,不會被特別標記。但現在各大個人信箱,如Gmail、Yahoo、Outlook、Hotmail,經常都會被攔截,加註由某某發信機代發,如下圖。

大型品牌客戶,為了維繫自己的品牌形象,不希望被標注”透過”,解決的方法便是設置郵件相關DNS (SFP、DKIM、DMARC)。《沛盛資訊》作為台灣規模最大的電子報發送業者,便協助所有沛盛客戶,不論規模大小,一律設定SFP、DKIM、DMARC。

email-travel-diagram

郵件DNS設定的原因

電子郵件寄送的設計,就如同實體的郵局、郵差。紙本的郵件,任何人都可以寫封信,假冒聲稱是另外一個人,然後交由郵局寄給對方。在電子郵件寄送上,每一個寄件人網域,透過SPF的設定,指名該網域僅能透過某些IP或網域寄送。若電子郵件收信服務器,發現出現非來自指定IP/網域信件,便可做有效的攔截。

當設定完SPF,Gmail便不會顯示”透過”某某代發業者寄送郵件,這是郵件DNS最基礎的一步。接下來,DKIM係用來作為郵件發送的數位簽章,用來防止郵件內容遭到竄改。在發送郵件時由發信服務器對郵件以私鑰進行簽章,收信機接收時用公鑰驗證,如果公鑰與私鑰能配對成功,代表郵件確實為原始發信機所發出。

DMARC 是用來輔助 SPF 與 DKIM 的不足,用來讓發信端網域通知收件端郵件服務器,當遇到 SPF 與 DKIM 的設定檢查不過時,進行的處理方式。最知名的案例就是 Yahoo 在2014年,宣布 DMARC 設為「拒絕」,也就是說所有不是從 Yahoo 郵件服務器發出的郵件,寄信人都不能用 Yahoo 郵件地址。

SFP、DKIM、DMARC 設定方法

透過 SPF、DKIM、DMARC 的郵件驗證機制,在收件端郵件服務器,首先由 SPF 可以檢查是否發信機的 IP 為認可發送該寄信者網域郵件。其次,以 DKIM 查看郵件發信時的私鑰與收信時的公鑰是否匹配,代表內容確實為該發信機發出。最後,由 DMARC 知道,假設 SPF/DKIM 驗證不過時,此封郵件該如何處理。以 Gmail 為例,必須做到 SPF、DKIM、DMARC 通通都設定且驗證通過,這封郵件才比較不可能被丟進垃圾信箱匣。

《沛盛資訊》整理完整的SFP、DKIM、DMARC 設定白皮書,為業界最完整詳實參考手冊,歡迎下載

VERP (Variable Envelope Return Path)的郵件應用

透過沛盛資訊OMICard發送電子報,客戶經常會發出一份到自己公司郵箱,另一份到自己外部郵箱。有客戶反應公司內部收到發出的電子報,寄件人From是類似如此:return.EID45f02849.job@domain.com,但是透過外部gmail等信箱,看到的寄件人From卻是正常的"xxx 電子報<marketing-edm@domain.com>"。客戶想要詢問為何同樣的發送電子報,不同地方收信的寄件人卻不同。

沛盛資訊發信機預設值採用VERP(請參閱wikipedia文件),信件中出現的為『寄件者』(給收件人辨識),『發信機與收信機之間是用『寄件人』(作為退信用),目前主流的郵件系統均採用VERP當作發信機與收信機的『寄件人』。

在有些的收信機(如 Lotus Notes)當收自己公司的信會顯示『寄件人』,就是這個看似編碼"return.EID45f02849.job@domain.com",在外面主流郵件系統均會是正常顯示。

簡單來解釋VERP(Variable Envelope Return Path),這是郵件系統用來辨識退信的通訊協定,也就是說以上面的例子,如果大量電子報發出後,有一千個退信,為了避免這些信都直接退到<marketing-edm@domain.com>這種真實郵箱,因為收到的人也無法處理。因此會退回到特殊編碼信箱,這一串“return.EID45f02849.job”會對應的是原本的收件者郵件地址(每個都不同),但是無法寄送。因此沛盛資訊的發信機,在收到這個退信編碼之後,就會辨認出這是某個原本郵件地址的退信,會在退信報表中呈現出來。

當然,若是想要不採用VERP當作『寄件人』,可透過DNS設定寄件人的MX紀錄,沛盛資訊可以協助將『寄件人』及『寄件者』設成一樣。

VERP 實際範例:
verp1
Gmail 的原始檔:
verp2