从另一台服务器发送电子邮件时出现“中继访问被拒绝”

从另一台服务器发送电子邮件时出现“中继访问被拒绝”

2008 年,我设置了一个简单的邮件服务器(运行 ubuntu 8.04 LTS),以允许本地自动化控制器无限制地发送电子邮件警报。我曾经使用 gmx,但发现如果一个帐户有大量警报(这表明存在问题),gmx 会阻止它。我设置了 postfix 并使其正常工作。然后我需要能够允许这种类型的控制器从远程站点发送警报。我为我的静态 IP 地址设置了防火墙规则,一切正常。

现在,我安装了一台新服务器,运行 ubuntu 12.04,执行的操作与以前完全相同。本地控制器可以连接到服务器并正常发送电子邮件。但是,当远程控制器尝试连接时,我在 /var/log/mail.log 中看到以下内容:

8 月 23 日 16:21:24 localhost postfix/smtpd[6709]: NOQUEUE: 拒绝:来自未知的 RCPT[xx.xx.xx.xx]: 554 5.7.1: 中继访问被拒绝;来自= 到= proto=ESMTP helo=

我发现编辑特定的行/etc/postfix/main.cf允许单个远程 IP 地址连接并发送邮件:

mynetworks = 127.0.0.0/8,10.102.0.0/16,xx.xx.xx.xx/32

其中 xx.xx.xx.xx 是远程位置的静态 IP 地址。我比较了旧服务器和新服务器的配置文件,它们基本相同。有人知道如何让它像以前一样工作吗?

答案1

“基本相同”与“相同”不同。:)

您需要列出授权的 IP 地址mynetworks 告诉 Postfix 授权他们:

smtpd_recipient_restrictions =
        permit_mynetworks,

答案2

检查virtual文件中的后缀。

/etc/postfix/virtual:
#            virtual-alias.domain     anything (right-hand content does not matter)
#            [email protected]  postmaster
#            [email protected]       address1
#            [email protected]       address2, address3
#
#        The  virtual-alias.domain anything entry is required for a
#        virtual alias domain. Without this entry, mail is rejected
#        with  "relay  access  denied", or bounces with "mail loops
#        back to myself".

答案3

因此,要修复此问题,必须正确设置 SASL 和证书。我几乎完全按照此指南操作,并且一切正常:

https://help.ubuntu.com/12.04/serverguide/postfix.html

让我感到困惑的是,我在 8.04 上不需要它。显然是 postfix 中的安全升级。

相关内容