中继访问被拒绝,需要完全限定的主机名

中继访问被拒绝,需要完全限定的主机名
Jul 15 20:33:32 ubuntu-server postfix/smtpd[2294]: connect from cpe-90-157-232-208.static.amis.net[90.157.232.208]
Jul 15 20:33:32 ubuntu-server postfix/smtpd[2294]: NOQUEUE: reject_warning: RCPT from cpe-90-157-232-208.static.amis.net[90.157.232.208]: 504 5.5.2 <MitjaBNotebok>: Helo command rejected: need fully-qualified hostname; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<MitjaBNotebok>
Jul 15 20:33:32 ubuntu-server postfix/smtpd[2294]: NOQUEUE: reject: RCPT from cpe-90-157-232-208.static.amis.net[90.157.232.208]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<MitjaBNotebok>
Jul 15 20:33:35 ubuntu-server postfix/smtpd[2294]: disconnect from cpe-90-157-232-208.static.amis.net[90.157.232.208]

我的 /etc/hosts

127.0.0.1       localhost
127.0.1.1       ubuntu-server.agadomarketing.com        ubuntu-server

为什么我从客户端发送邮件时总是出现此错误?

答案1

此错误是因为您的客户端没有完全限定的主机名。如果您查看错误消息,它会说您的服务器 (ubuntu-server) 已从 MitjaBNotebok(可能是您的笔记本电脑)获得连接。当笔记本电脑连接时,它会显示“HELO MitjaBNotebok”。MitjaBNotebok 不是完全限定的主机名,并且您的邮件服务器设置为拒绝没有正确主机名的客户端。

这通常是一种反垃圾邮件功能,如果您的邮件服务器主要用于接收来自世界其他地方的邮件,它将减少垃圾邮件 - 但它也会减少普通邮件,特别是当您将其用作外发邮件服务器时。

为了使您的邮件服务器接受来自笔记本电脑等客户端的邮件,您需要查看参数

smtp_helo_restrictions = reject_non_fqdn_helo_hostname

通常,如果你想要减少一些垃圾邮件,但仍然允许没有配置完整主机名的客户端,那么将其设置为

 smtp_helo_restrictions = reject_invalid_helo_hostname

这意味着所有客户端都需要使用正确的语法,但即使它们没有完整的主机名,您仍然会接受邮件。

在所有情况下,您都希望

smtp_helo_required = yes

否则有关直升机的所有规则都将无法执行。

答案2

看起来您正在尝试登录到您自己的邮件服务器来发送外发邮件。

为了安全正确地执行此操作,您需要为 Postfix 设置 SMTP 身份验证。这是一项不简单的任务,但Postfix 文档应该可以帮助你开始。

一旦正确设置,您将连接到端口 587(而不是 25)上的邮件服务器,使用您的用户名和密码进行身份验证,然后您的邮件就会通过。

这样做的好处是,当您设置了 SMTP 身份验证时,经过身份验证的用户不必处理具有反向 DNS 条目或完全限定主机名的 IP 地址的通常限制或邮件服务器出于安全原因施加的其他限制。

相关内容