我知道之前已经问过这个问题,但我尝试了其他答案,仍然出现同样的错误。
服务器错误:“554 5.7.1:中继访问被拒绝”
postconf-n:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = mydomain.com
myhostname = mail.mydomain.com
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relay_domains = $mydestination
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
并添加
smtpd_relay_restrictions =
permit_mynetworks
defer_unauth_destination
答案1
如果您的服务器允许您将电子邮件从互联网上的任何 IP 转发到互联网上的任何域,则大约需要 0.5 纳秒的时间,垃圾邮件发送者就会开始滥用它向全世界发送垃圾邮件。这确实非常糟糕。
因此,为了将其用作中继,您需要设置某种身份验证机制。最常用的方法是 SASL;另一种方法是使用 SSL/TLS 证书(您可以自己颁发)或设置 SSH 隧道或 stunnel。
SASL 的主要优势在于它可以在任何计算机上使用,即使您不拥有或完全控制该计算机。TLS/SSH/stunnel 的优势在于连接更安全 - 但需要在客户端做更多工作。
您还可以将自己的 IP 地址添加到允许中继的 IP 列表中。
如果你选择使用 SASL,请先阅读后缀 SASL 文档。
如果你选择使用 SSL/TLS 证书,请先阅读Postfix TLS 文档。
如果您想将您的 IP 地址添加到允许中继的网络,则应将 IP 地址添加到配置中的“mynetworks”行。如果没有这样的行,请添加它。正常值应该是这样的
mynetworks = 127.0.0.0/24,1.2.3.4/32
其中 1.2.3.4 是您要从其进行中继的计算机的实际 IP 地址。有关更多信息,请访问Postfix 网站