postfix 设置:中继访问被拒绝。帮我理解一下

postfix 设置:中继访问被拒绝。帮我理解一下

我正在尝试设置一个 Postfix 服务器来测试我们的应用程序,该应用程序使用 Oracle 邮件库 javax.mail 发送邮件。该应用程序运行良好,因为我可以使用 Google、我们自己的邮件服务器等发送邮件。

我在发送 ehlo 测试时遇到的问题是 5.7.1 中继访问被拒绝。我看到有数百个这样的问题,但没有一个能帮助我理解这实际上是如何工作的。

如果我在 main.cf 中将 yahoo.com 列为“relay_domain”,我就可以向 yahoo 收件人发送邮件。我不太明白这是什么意思,我是否要在这里列出我想要发送邮件的所有域(当然不是)。抱歉,这个问题比较菜鸟,但大多数指南似乎都是为那些更了解电子邮件工作原理的人准备的。

postfix 在 centOS 上运行。

这是我的配置差异。

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
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,    mail.$mydomain, www.$mydomain, ftp.$mydomain
mydomain = *****.com
myhostname = mail.*****.com
mynetworks = 192.168.1.0/200, 127.0.0.0/8
myorigin = $myhostname
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

答案1

我的网络 = 192.168.1.0/200

这不可能是正确的,因为没有 /200 网络掩码。这会导致您的 postfix 拒绝来自 192.168.1.0 网络中受信任主机的邮件。

relay_domains您描述的方式并不正确。此语句用于您应该处理(备份)邮件的邮件域,而不是您要向其发送邮件的域。

答案2

为了更清楚地了解在哪里列出哪些域名;您的 MTA 有三个重要用途。

  • 您将必须接收您托管的域的邮件。(在 postfix 中,您将这些域列在mydestinationvirtual_alias_domains或下virtual_mailbox_domains)这可以称为inboundMTA 模式。

  • 您必须充当某些域的备份 MX 服务器(并非总是如此),并将这些域列出relay_domains,您的邮件服务器将接受这些域的邮件并转发它们。因此,这可以称为forwardingMTA 模式。

  • 您的内部用户应该能够向世界上的任何人发送邮件。用户通常进行身份验证并发送邮件,这可以称为outboundMTA 模式。

希望这能有所帮助。这些内容在后缀地址类Postfix SASL 自述文件

相关内容