IMG_2026_07_25~09_47_45~1152x896

讓伺服器發出的電子郵件不再被判斷為垃圾信件

有網友詢問電子郵件發送不到Gmail的相關問題,我查了一下,大多數原因可能是Gmail連IPv6都要驗證的關係,雖說Gmail真的滿挑剔垃圾信件的(龍頭老大的權威?!),但最重要的還是要設定好SPF (Sender Policy Framework「寄件者政策架構」)、DKIM (DomainKeys Identified Mail「網域金鑰認證郵件」)、DMARC (Domain-based Message Authentication, Reporting & Conformance「網域型郵件驗證、報告與一致性」)三大防堵垃圾信的規則,只要設定好三大規則和rDNS (Reverse DNS「IP反解」)/也可稱之為PTR (Domain Name Pointer「指標記錄」),幾乎很難被判斷為垃圾信件 😱🥶🙀

接下來我做的範例是在一個使用子網域的CentOS 8系統上,用既有的Let’s Encrypt免費SSL證書,大約花10分鐘設定好Postfix使用TLS(Transport Layer Security「傳輸層安全性」)通訊協定,並且安裝OpenDKIM替伺服器簽署DKIM來防止被判斷為垃圾信件 🤓

### 首先無論如何一定要設定好rDNS/PTR,無論是自己設定或是找主機商,都一定要先設定好rDNS/PTR來增強電子郵件的可靠度,這對現今的DNSBL(Domain Name System-based Blackhole List)或是RBL(Remote Blackhole List)兩種主流的反垃圾信的黑清單列表服務是相對友好的,可以透過MxToolbox這個線上查詢工具來查詢IP是否被加入列表中;另外也很推薦到Google郵件管理員工具來驗證網域名稱擁有者 🏎🚄🚀


🟦 🟦 🟦

章節一、安裝、設定相關套件

# 安裝OpenDKIM、Postfix相關套件,並且移除sendmail 🤓

### 因為我都是習慣用主機的子網域名稱做為主機名稱,所以只要替換好了驗證器名稱(lax7)與網域名稱(520.be),下方的指令存到筆記之後,可以很方便的設定好伺服器 🤖🤓🤖

# 修改主機名稱 🤓

# 修改hosts for IPv6,沒IPv6的用下方指令 🤓

# 修改hosts for IPv4 🤓

# 產生OpenDKIM的使用者,密碼部分要輸入兩次唷 🤓

# 產生OpenDKIM的金鑰,最重要的-s是指Selector (驗證器名稱),這個可以用來分別對子網域做DKIM,這邊需要將lax7替換成要指定的驗證器名稱,例如a001、b002之類的都任意 🤓
# -d 小寫的d是指所使用的網域名稱,需要使用主網域而不是子網域,這點請特別注意。 🤓
# -D 大寫的D是指輸出檔案到特定資料夾 🤓

# 自訂OpenDKIM的白名單,這邊填上網域名稱或擁有多個IP 🤓

### 從這邊開始,接下來可以一次貼上一大堆指令 🏂🐱‍🏍🏄‍♂️

# 設定OpenDKIM相關資料夾、檔案的權限 🤓

# 自訂OpenDKIM的驗證器(Selector)名稱、要通行的信箱名稱 🤓

# 自訂OpenDKIM金鑰存放的位置 🤓

# 編輯OpenDKIM的設定檔 🤓

# 重啟OpenDKIM 🤓

### 可以一次貼上的指令到這裡,是不是省事很多 🐱‍👤🐱‍👤🐱‍👤

### 從這邊開始,接下來是設定Postfix,只要你是CentOS 8系統,接下來一樣可以一次貼上一大堆指令 🏂🐱‍🏍🏄‍♂️

# 備份Postfix設定檔main.cf 🤓

# 編輯Postfix的main.cf設定檔,並且在最尾端增加啟用DKIM、TLS的設定 🤓

### 可以一次貼上的指令到這裡 🐱‍👤🐱‍👤🐱‍👤

# 注意此處要填上fullchain檔案的完整路徑,且資料夾路徑的/斜槓之前一個字要加一個反斜槓\,路徑才會被正確解析 🤓

# 注意此處要填上SSL key檔案的完整路徑,且資料夾路徑的/斜槓之前一個字要加一個反斜槓\,路徑才會被正確解析 🤓

# 如果沒有做IPv6的rDNS(PTR),編輯Postfix的main.cf設定檔,強制使用IPv4傳輸比較好對付挑剔的Gmail 🤓

# 重啟Postfix 🤓


🟦 🟦 🟦

章節二、添加相關的DNS記錄

### 接下來到DNS服務商的網站將DKIM、DMARC、SPF三條記錄加上,然後稍後測試發信,由於我的網域幾乎都轉到Gandi,這邊是範例,首先讀取一開始產生的OpenDKIM的公開金鑰 🤖🤖🤖

# 將p=後面一大串的數字替換到下方DKIM同樣p=的內容,然後添加到DNS服務商 ⛷

# 添加SPF記錄,注意SPF的部分要分別設定好IPv4/v6喔 🏂

# 添加DMARC記錄 🏇

# Gandi的DNS大約1到10分鐘內就能解析,所以喝口水、站起來動一動再回來驗證密鑰,只要看到最後出現key OK的字眼,就可以測試發信了 🥤🍩☕

### 驗證方法,最簡便的就是verifier.port25.com了,將xxoo替換成你的gmail前輟就行啦,port25.com就會將測試報告寄過來,另外也寄一封信到自己的gmail做測試 👺

# 另外還有其他幾個相同性質的測試網站 🤓


🟦 🟦 🟦

章節三、結語

# 其實這些操作都不難,很容易就能大功告成的,難的是思路(一點思路都沒有就是多看書多吸收知識👹),有時就是會鬼打牆陷進某種不可說的循環 XD 另外如果你檢查原始郵件檔案的標頭,會看到dkim=pass、spf=pass、dmarc=pass三大規則都通過了 🤖🤓🤖

# SpamAssassin的標頭結果如下,雖然我這台VPS的rDNS/PTR還沒設定好,但結果還是負分-55,可以順利進入收件箱;先試著做一次,之後將操作紀錄存在記事本,很方便操作的 🍻🍺🍻


🟦 🟦 🟦

ref.

列印本文

關於 寂寞先生

In every democracy, the people get the government they deserve. ~Alexis de Tocqueville
上一篇:
下一篇:

您可能會喜歡

CloudCone全自動DD安裝Windows

前陣子VPS優惠 – Clou …

發佈留言