Freebsd

使用 SMTP 到外部收件人 POSTFIX FREEBSD 時中繼訪問被拒絕

  • December 15, 2020

我正在嘗試使用 postfix 和 dbmail 通過我的 freebsd 伺服器向外部地址發送電子郵件。

我注意到以下幾點:

我的伺服器 -> 我的伺服器 = 好的

外部伺服器 -> MYSERVER = 好的

MYSERVER -> EXTERNALSERVER = 錯誤(454 4.7.1 中繼訪問被拒絕)

為什麼我會收到此錯誤?我認為這與我的 main.cf 有關

####MAIN.CF######
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
mail_owner = postfix
default_privs = nobody
myhostname = server.domain.nl
mydomain = domain.nl
myorigin = $mydomain
inet_interfaces = all
virtual_transport = dbmail-lmtp:localhost:24
virtual_mailbox_domains = domain.nl
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8 [::1]/128
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
debug_peer_level = 2
debugger_command =
    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
    ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = /usr/local/share/doc/postfix
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = /usr/local/share/doc/postfix
inet_protocols = ipv4
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination

是不是您沒有通過正確的身份驗證(通過您的郵件客戶端)發送出站電子郵件,或者沒有設置 mynetworks 以便它允許您網路中的所有系統在沒有身份驗證的情況下發送?

https://serverfault.com/questions/42519/how-to-correct-postfix-relay-access-denied

sendmail當我在這個執行緒中設置時,我收到了類似的錯誤消息。對我來說,問題是我通過埠 465 進行身份驗證,這是帶有 TLS 的 SMTP,但該協議需要在身份驗證後執行 TLS,例如通過埠 25,這是沒有 TLS 的 SMTP。

解決方案是將埠更改~/.authinfo

machine server.domain.tld login username@domain.com port 25 password XYZ

更新:我不是 SMTP 專家。我的回答是基於我的經驗和這個執行緒,其中有評論提到了我使用埠 25 進行身份驗證的反駁:

這不是 SMTP AUTH 的工作方式:您使用相同的埠進行身份驗證和發送,在本例中為 587。

引用自:https://unix.stackexchange.com/questions/187423