大家好,我是適得郵件專家團隊的適得哥,外寄信件要順暢有四個要點要注意,這次要來介紹第二個要點 DKIM,哥一樣都是不打算像Wiki 百科全書般這麼艱澀的介紹DKIM ,哥想講的是一般公司實際用得到的設定及IT人員就知道這些就好的範圍,這樣才是哥要的不囉唆實用風格。
簡單科普一下域名金鑰辨識郵件(DomainKeys Identified Mail,DKIM)是一套電子郵件認證機制,使用公開金鑰加密的基礎提供了數位簽章與身分驗證的功能,以檢測寄件者、主旨、內文、附件等部份有否被偽冒或竄改,一般來說,寄信方的主機會在郵件的標頭插入DKIM-Signature及電子簽名資訊。而收信方的收信主機收到信後會透過DNS方式查詢到寄件方的公開金鑰後進行公鑰及私鑰的驗證,如果配對起來是OK的就表示是合法的DKIM金鑰,就會收寄件方的信件。
目前Gmail、Yahoo、M365都有DKIM的檢查的機制,一般的企業更不用說為了自己企業的郵件安全及信譽也都需要有DKIM的機制,所以大家說DKIM重不重要呢 ?趕快來設定好DKIM 吧
設定DKIM有三步驟 ,但要注意的是,
要先確認您的郵件系統是否有支援外寄加簽DKIM的功能 !!!
一般雲端的 M365、GSuite 有支援,地端產品例如 網擎 MailGates 、中華數位 SpamSQR也是有支援,如果您是用 Sendmail、Postfix之類的是沒有支援這功能的,就另裝外掛或其它做法來支援。
所以要先確認一下您用的系統是否有支援外寄加簽DKIM的功能,再來做後面這三步驟喔!
步驟一 產生DKIM 金鑰
來產生 DKIM 的值吧!
建議可以到下列這個網站來產生 DKIM
https://easydmarc.com/tools/dkim-record-generator
下圖是範例,在 Selector 的部份到時會顯示在 DNS設定上,填什麼其實都可以,建議就和哥一樣填 dkim吧!Key Length 長度可以先選 1024,如要選2048也是可以的喔!

按下“Generate”後即可產生 DKIM的KEY值,這邊也有把要填入 DNS TXT值列出,
剛才在Selector 的部份填 dkim ,所以到時要填DNS TXT的值即為 dkim._domainkey.cftb.com.tw

產生出來的公鑰(Public Key)及私鑰(Private Key)

好吧!來講一下DKIM 公鑰(Public Key)值每段的意思,下列這個是範例,段於段之間記得用 ; 來隔開。
v=DKIM1;t=s;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+J7VpXa8G7s3c7//76oWHNx3k61s6N0iOTCRz6ENMFTytLQ/d/U8sd6mKfhlrCSLkWWeWFNbo0Vhp2vE8tUPAWPXNKh6RZ/LsiHr5CZIdHUwrJedhyFPkdEi852HzDde7FRVtct98/ZTrAFMfuIrNqGjT63Mj1dMBCx98hQHpJwIDAQAB
第一大段 v=DKIM1 是說DKIM用的版本
第二大段 t=是說設定的DKIM是否是測試的模式,t=y是測試模組 t=s 是非測試模試,
第三大段 p= 就是DKIM的公鑰的值。這邊有個重點要注意,金鑰有分公鑰及私鑰,目前這part產生的DKIM的值是公鑰喔!私鑰的部份在步驟三會講到。
第二個步驟 於DNS Sever發佈DKIM 金鑰
接下來就把 DKIM的公鑰設定值填到 DNS Server上的設定中,設定類型請選 TXT,名稱的部份請填 dkim._domainkey,值的部份請填要設定的DKIM值,下列是範例。

注意注意!!
大多數 DNS主機可設定的TXT 記錄的長度上限為 255 個字元;TXT 記錄如超過 255 個字元,DNS 會將多個字串一起加入單一記錄中。
如果您使用的是 2048 位元 DKIM 金鑰,就無法在長度上限為 255 個字元的 DNS 記錄中以單一文字字串的形式輸入該金鑰,可以在DNS設定上分成多筆TXT 記錄後,再做設定,說明如下。
- 將公鑰字元分成多個文字TXT字串。
- 在每個TXT字串前後加上引號 “。
- 在DNS設定環境的 TXT 欄位中逐一輸入字串。
舉例,可以將較長的 DKIM 金鑰分成兩組文字字串,並在各字串前後加上引號:
第一個TXT:
“k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAraC3pqvqTkAfXhUn7Kn3JUNMwDkZ65ftwXH58anno/bElnTDAd/idk8kWpslrQIMsvVKAe+mvmBEnpXzJL+0LgTNVTQctUujyilWvcONRd/z37I34y6WUIbFn4ytkzkdoVmeTt32f5LxegfYP4P/"
第二個TXT:
“w7QGN1mOcnE2Qd5SKIZv3Ia1p9d6uCaVGI8brE/7zM5c/zMthVPE2WZKA28+QomQDH7ludLGhXGxpc7kZZCoB5lQiP0o07Ful33fcED73BS9Bt1SNhnrs5v7oq1pIab0LEtHsFHAZmGJDjybPA7OWWaV3L814r/JfU2NK1eNu9xYJwA8YW7WosL45CSkyp4QeQIDAQAB"
以此類推。
第三個步驟 外寄時加上DKIM
這邊我用網擎的MailGates為例做,即可把剛才步驟一產生的私鑰(Private Key)存成文字檔後上傳。

都設定好了後,一樣也可以寄信到Gmail做測試,看看寄到Gmail後的情況。
- 點開寄到Gmail信箱的信件,並按點擊如下圖中右上角的三個小點按鈕,找到“顯示原始郵件”的按鈕並點擊。


- 看原始郵件內容,查看 DKIM的欄位是否為“PASS”。

以上就是設定DKIM及產生DKIM公鑰及私鑰的產生方法,謝謝收看,
若您仍有解決不了的郵件系統問題,或有更換郵件、垃圾信過濾、郵件歸檔系統的需求,可以連絡適得團隊,讓適得團隊協助您管好您的郵件系統。