Postfix
Postfix 完全忽略 main.cf 中的中繼主機設置
我在向中繼主機發送電子郵件時遇到問題。所有郵件都是直接投遞的。
postconf -n
:alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix inet_interfaces = loopback-only inet_protocols = all mailbox_size_limit = 0 mydestination = myhostname = webserver.example.com myorigin = /etc/mailname readme_directory = no recipient_delimiter = + relayhost = smtp.example.com smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes
Mailq 和日誌顯示郵件試圖直接連接到mail.h-email.net而不是我的中繼伺服器。
輸出
mailq
:root@webserver:/etc/postfix# mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 9F79E60224 382 Thu Jun 25 09:19:49 root@webserver.example.com (connect to mail.h-email.net[107.21.213.75]:25: Connection timed out) tguadagnin@gmail.com -- 0 Kbytes in 1 Request.
mail.log 的輸出
Jun 25 09:20:20 webserver postfix/smtp[6998]: 9F79E60224: to=<tguadagnin@gmail.com>, relay=none, delay=31, delays=0.02/0/31/0, dsn=4.4.1, status=deferred (connect to mail.h-email.net[107.21.213.75]:25: Connection timed out)
日誌顯示
relay=none
,而我的所有其他具有完全相同配置的伺服器正確發送電子郵件並relay=smtp.example.com
在其日誌中報告。這台伺服器的唯一區別是我將它放在不同的網段中,這是我的 DMZ 之一。
我已經設置了規則,以便伺服器本身無法在埠 25 上進行出站通信。伺服器可以通過埠 25 成功與中繼主機通信。
dpkg-reconfigure postfix
並且將系統設置為衛星系統並不能緩解這個問題。mailutils
包提供誰能幫我嗎?我一直在努力弄清楚如何正確解決這個問題。
看來 postfix 完全忽略了
/etc/hosts
.如果設置
relayhost = FQDN
而不是 IP 地址,它將嘗試為其 IP 地址解析 FQDN,並且不會使用/etc/hosts
它來查找它。如果設置為本機,它將使用系統配置resolv.conf
文件。smtp_host_lookup
由於它無法解析我的中繼主機,它只是嘗試將郵件直接發送到乙太網中。我找不到有關這是否是正確行為的詳細資訊。
將中繼主機設置為 IP 地址或確保中繼主機 FQDN 可在不使用
/etc/hosts
修復此問題的情況下解析。