Postfix寄件設定筆記 Google退信問題解決(DKIM 驗證)

首先第一步要把 /etc/hostname 改成你的信件 domain
例如 mail.site.com

重開機

安裝 apt install postfix  mailutils
選擇「Internet Site」

測試能不能寄信 echo "郵件內容" | mail -s "郵件主題" 收件者信箱

測得的結果 gmail 會被退信,但公司的信箱沒被退

gmail 會被退信的原因是沒通過  SPF 或 DKIM 驗證

我們就朝著解決 DKIM 驗證,這裡分成兩個部份 一、主機 二、DNS
一、主機:
apt install opendkim opendkim-tools
opendkim-genkey -b 2048 -d mail.site.com -s mail
會產出 mail.private  mail.txt
接著 mkdir -p /etc/opendkim/keys/mail.site.com/
mv mail.private  mail.txt /etc/opendkim/keys/mail.site.com/

vi /etc/opendkim.conf 取後面加入
Domain                  mail.tainanoutlook.com
KeyFile                 /etc/opendkim/keys/mail.tainanoutlook.com/mail.private
Selector                mail

/etc/init.d/opendkim restart

二、DNS
在DNS建立 TXT
mail
mail v=spf1 ip4:主機IP mx ~all

mail._domainkey
貼上 /etc/opendkim/keys/mail.site.com/mail.txt 內的值,要貼的內容參考下面的連結
https://dmarcly.com/blog/how-to-add-dkim-record-in-cloudflare-cloudflare-dkim-setup-guide

如果設定成功,用下面的連結就能測得成功
https://dmarcly.com/tools/dkim-record-checker

echo "郵件內容" | mail -s "郵件主題" xxx@gmail.com

再測一次,順利的話 gmail 也能到到


如果寄信沒問題,就可以接著來處理收信

ufw allow 25/tcp

設定DNS 
A mail.site.com
MX mail.site.com

然後試著寄信給 root@site.com,如果沒有收到信就表示 出/進 都沒問題這段算解決

後續再搭配web管理的串面,就真的能真實架mail server

關於信件驗證,可以參考
https://www.cloudflare.com/zh-tw/learning/dns/dns-records/protect-domains-without-email/

解決了退信問題的大魔王後,我最後卡關在寄信,我在本機建立了 Roundcube 這款php收信程式,可以順利登入,但要使用驗證寄信這關一直過不了,ChatGPT給的conf檔也蠻亂的,每次問出來的都不太一樣 Roundcube 需要 imap 登入

解決方向 postfix dovecot 587 有空再來研究

留言

熱門文章