Debian
將 Exim4 完整設置為 SMTP,以盡可能到達大多數收件箱(正確配置)
在過去的幾天裡,我嘗試設置 Exim4 來處理從 Web 應用程序發送的所有郵件。
它似乎正在工作,但我還沒有找到如何硬編碼將與 EHLO 一起發送的主機名?(我不想設置
/etc/hostname
)找到了配置中提到的變數
MAIN_HARDCODE_PRIMARY_HOSTNAME
,但沒有找到設置它的方法。這個變數是設置主機名的最簡單方法還是有更好的方法?下面是完整的安裝/配置。我錯過了什麼嗎?
Exim version 4.92
Debian Buster 10
安裝
apt-get install exim4-daemon-light
配置 Exim4
dpkg-reconfigure exim4-config Type: internet site FQDN: smtp.mydomain.com SMTP listener: (empty) Mail destinations: (empty) Domain relay: (empty) Machine relay: (empty) DNS queries minimal: No Delivery method: Maildir Split conf files: No
啟用 TLS 並生成證書
printf "MAIN_TLS_ENABLE = true\n" >> /etc/exim4/exim4.conf.localmacros /usr/share/doc/exim4-base/examples/exim-gencert
檢查反向 DNS(IP -> smtp.mydomain.com)
https://mxtoolbox.com/ReverseLookup.aspx
獲取 IPv6
ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80
/etc/hosts
[ipv4] smtp.mydomain.com [ipv6] smtp.mydomain.com
在“/etc/exim4/exim4.conf.template”中取消註釋
# plain_server: # driver = plaintext # public_name = PLAIN # server_condition = "${if crypteq{$3}{${extract{1}{:}{${lookup{$2}lsearch{CON$ # server_set_id = $2 # server_prompts = : # .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS # server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}} # .endif
添加使用者/密碼 -> ‘/etc/exim4/passwd’
/usr/share/doc/exim4-base/examples/exim-adduser
DKIM/SPF
我在伺服器上設置了 DKIM 密鑰,在 DNS 上設置了 DKIM/SPF,兩者都有效
設置
REMOTE_SMTP_HELO_DATA = whatever.you.want
在/etc/exim4/exim4.conf.localmacros
. 自 4.69-10 起,Debian 軟體包就支持它。來自/usr/share/doc/exim4/changelog.Debian.gz
:
- 允許通過直接設置 REMOTE_SMTP_HELO_DATA 宏來設置傳出 smtp helo/ehlo。以前,這只是應該用作 REMOTE_SMTP_HELO_FROM_DNS 的幫助宏。REMOTE_SMTP_HELO_FROM_DNS 會覆蓋手動 REMOTE_SMTP_HELO_DATA 數據設置。關閉:#514113
Debian 配置模板使用此宏來填充
helo_data
SMTP 傳輸選項。