无法从 Postfix 邮件服务器发送电子邮件到互联网。(中继访问被拒绝)

无法从 Postfix 邮件服务器发送电子邮件到互联网。(中继访问被拒绝)

我的局域网中有一个运行 Postfix 的邮件服务器,我可以用它在局域网中发送和接收电子邮件,也可以从广域网发送到局域网。我无法从 LAN 发送到 WAN尽管。

我正在尝试使用我的 ISP 的中继主机(mail2.bahnhof.se)来解决这个问题,因为这似乎是最简单的方法(中继不需要身份验证)。

使用 telnet 我可以直接连接到中继主机并发送电子邮件而无需身份验证:

> telnet mail2.bahnhof.se 25
Connected to mail2.bahnhof.se.
helo mail.mydomain.com
250 mxf2.bahnhof.se
mail from: [email protected]
250 Ok
rcpt to: [email protected]
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
This is a test
.
250 Ok: queued as 9BFD413BAE5

但是尝试在我的 postfix 服务器上使用相同的中继时,出现了中继访问被拒绝错误(不确定它指的是哪个中继):

>telnet mail.mydomain.com 25
HELO mail.mydomain.com
250 mail.mydomain.com
mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
554 5.7.1 <[email protected]>: Relay access denied

我的 postfix 配置(main.cf):

# 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

myhostname = mail.mydomain.com
mydomain = mydomain.com
myorigin = $mydomain
smtpd_sender_restrictions = permit_mynetworks
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = mail.mydomain.com, ubuntu, localhost
relayhost = mail2.bahnhof.se
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

知道可能是什么问题吗?

答案1

是的。您的服务器拒绝向您中继。因为:

smtpd_sender_restrictions = permit_mynetworks
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

因此,您必须将 IP 范围(例如,您的 telnet 客户端的 IP)添加到我的网络

mynetworks = 192.168.0.15 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

如果你的 telnet 客户端的 IP 是 192.168.0.15

如果您的服务器托管在 ISP 上,并且您使用的是未知的动态 IP 范围,则必须在服务器中使用 SMTP 身份验证。或者将您的服务器保留为开放中继(当然我不建议这样做)。

相关内容