後綴:中繼訪問被拒絕

後綴:中繼訪問被拒絕

當我遠端登入執行 postfix 的伺服器並嘗試發送電子郵件時:

MAIL FROM:<[email protected]>
#=> 250 2.1.0 Ok

RCPT TO:<[email protected]>
#=> 554 5.7.1 <[email protected]>: Relay access denied

我無法在網站上真正找到答案,或者透過查看其他用戶的問題/答案,我不知道從哪裡開始。有想法嗎?


更新

所以基本上查看文件:http://www.postfix.org/SMTPD_ACCESS_README.html(部分:使用 SMTP 存取限制清單進行選擇性),我似乎沒有任何這些指令etc/postfix/main.cf

就像smtpd_client_restrictions = permit_mynetworks, reject或其他任何一個,所以我很困惑。

但實際上我將有一個 Rails 應用程式連接到伺服器並發送電子郵件,所以我不知道如何處理它。

我的設定檔如下所示:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = rerecipe-utils
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost, mail.rerecipe.com, rerecipe.com
relayhost =
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
mynetworks = 127.0.0.0/8 204.232.207.0/24 10.177.64.0/19 [::1]/128 [fe80::%eth0]/64 [fe80::%eth1]/64

需要注意的是,它relayhost是空白的,這是我安裝 Postfix 時創建的預設配置文件,在測試連接時openssl我得到這個:

~% openssl s_client -connect mail.myhostname.com:25 -starttls smtp
CONNECTED(00000003)
depth=0 /CN=myhostname
verify error:num=18:self signed certificate
verify return:1
depth=0 /CN=myhostname
verify return:1
---
Certificate chain
 0 s:/CN=myhostname
   i:/CN=myhostname
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIBqTCCARICCQDDxVr+420qvjANBgkqhkiG9w0BAQUFADAZMRcwFQYDVQQDEw5y
ZXJlY2lwZS11dGlsczAeFw0xMDEwMTMwNjU1MTVaFw0yMDEwMTAwNjU1MTVaMBkx
FzAVBgNVBAMTDnJlcmVjaXBlLXV0aWxzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQDODh2w4A1k0qiPNPhkrPj8sfkxpKPTk28AuZhgOEBYBLeHacTKNH0jXxPv
P3TyhINijvvdDPzyuPJoTTliR2EHR/nL4DLhr5FzhV+PB4PsIFUER7arx+1sMjz6
5l/Ubu1ppMzW9U0IFNbaPm2AiiGBQRCQN8L0bLUjzVzwoSRMOQIDAQABMA0GCSqG
SIb3DQEBBQUAA4GBALi2vvk9TGKJubXYJbU0PKmVmsfzFK35yLqr0keiDBhK2Leg
274sWxEH3ds8mUaRftuFlXb7RYAGNlVyTuMTY3CEcnqIsH7F2McCUTpjMzu/o1mZ
O/B21CelKetBd1u79Gkrv2vWyN7Csft6uTx5NIGG2+pGi3r0gX2r0Hbu2K94
-----END CERTIFICATE-----
subject=/CN=myhostname
issuer=/CN=myhostname
---
No client certificate CA names sent
---
SSL handshake has read 1203 bytes and written 360 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : DHE-RSA-AES256-SHA
    Session-ID: 1AA4B8BFAAA85DA9ED4755194C50311670E57C35B8C51F9C2749936DA11918E4
    Session-ID-ctx: 
    Master-Key: 9B432F1DE9F3580DCC6208C76F96631DC5A4BC517BDBADD5F514414DCF34AC526C30687B96C5C4742E9583555A118232
    Key-Arg   : None
    Start Time: 1292985376
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
250 DSN

奇怪的是,當我嘗試從機器本身發送電子郵件時,它工作:

echo test | mail -s "test subject" [email protected]

答案1

通常,當您看到這種類型的拒絕時,它與為訪問中繼而配置的內容有關,這意味著允許發送/中繼什麼?您剛剛設定了該伺服器嗎?您嘗試從哪裡發送?請詳細說明。

答案2

我無法在網站上真正找到答案,或者透過查看其他用戶的問題/答案,我不知道從哪裡開始。有想法嗎?

Google搜尋“Postfix Relay”,然後點擊第一個結果。如果您對文件有具體疑問,或者如果您嘗試過某些操作但認為它不像描述的那樣工作,請告訴我們,我們將很樂意提供協助。

答案3

通常,預設使用 postfix,為了讓它轉發您的訊息,您要么來自內部的某個地方mynetworks,要么您的寄件者電子郵件地址應該位於mydestination.當然這是預設的並且可以更改,通常透過smtpd_client_restrictions.在您的範例中,寄件者是[email protected],這很可能不是您的網域。您的設定檔未指定 mydomain,$mydomain 將從伺服器主機名稱域初始化。因此,由於您不是來自 mynetworks,也不在 mydestination,因此您的郵件既不會在該 postfix 伺服器上啟動也不會結束,因此是中繼,並且會被拒絕。

另一方面,當您來自機器本身(127.0.0.1)時,您位於 mynetworks 中,因此可以毫無問題地進行中繼。

事實上,正如 larsks 指出的那樣,postfix 郵件轉發不僅僅是幾個「神奇」的設定指令。您應該熟悉 postfix 的大量線上文件。

相關內容