後綴中繼主機。拒絕連接
Postfix 拒絕作為中繼主機發送電子郵件。它一直在說:
連接到 mydomain.com
$$ xxx.xx.xxx.xxx $$:25: 連接被拒絕
但是埠 25 是開放的:
sudo netstat -ntlp tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN 39162/mysqld tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 57910/proftpd: (acc tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 614/systemd-resolve tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 762/sshd: /usr/sbin tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 70265/master tcp6 0 0 :::3306 :::* LISTEN 39162/mysqld tcp6 0 0 :::80 :::* LISTEN 61217/apache2 tcp6 0 0 :::22 :::* LISTEN 762/sshd: /usr/sbin tcp6 0 0 ::1:25 :::* LISTEN 70265/master tcp6 0 0 :::443 :::* LISTEN 61217/apache2
我不知道這個問題來自哪裡。
有人能幫我嗎 ?
您的中繼主機需要身份驗證。也就是說,您需要證明您被允許通過此中繼主機發送郵件。通常,relayhost 運營商會為您提供憑據(一些登錄名和密碼),您可以在 Postfix 中配置這些憑據以在與中繼主機通信時使用。
Postfix SASL Howto中描述了 SMTP 客戶端身份驗證的配置(當您的 Postfix 與作為 SMTP 伺服器的中繼主機通信時使用)。就是這樣:
在後綴中
main.cf
:relayhost = [relay.host.name] smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
第一行設置中繼主機,第二行啟用身份驗證,第三行指定儲存每個中繼主機憑據的文件,即
/etc/postfix/sasl_passwd
. 在該文件中,您輸入:[relay.host.name] username:password
postmap /etc/postfix/sasl_passwd
更改此文件後始終執行,並postfix reload
在編輯main.cf
. 還要限制對該文件的訪問,因為它包含敏感資訊:chmod 0600 /etc/postfix/sasl_passwd chown root:root /etc/postfix/sasl_passwd
請注意,如果您的中繼主機希望您在另一個埠上送出(例如,當我必須設置中繼主機時,我是在
smtp submission
埠上完成的tcp/587
),您需要在文件relayhost = [relay.host.name]:submission
中main.cf
和相同的sasl_passwd
文件中指定它。Postfix SMTP 客戶端不支持“直接 SMTPS”(他們稱之為“包裝模式”),其中 SMTP-over-SSL 伺服器期望直接在埠上進行 SSL 握手
tcp/465
(就像 Google 所做的那樣)。它僅支持使用 STARTTLS 命令啟動埠 25 或 587 上的 TLS。