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
一、主機:
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/
會產出 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 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
貼上 /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 有空再來研究
留言