中继访问被拒绝,需要完整的主机名

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 

为什么我从客户端发送邮件时总是遇到这个错误?

此错误是因为您的客户端没有完全限定的主机名。 如果你看看错误信息,它说你的服务器(ubuntu-server)已经连接了MitjaBNotebok(推测是你的笔记本电脑)。 当笔记本电脑连接,它说:“HELO MitjaBNotebok”。 MitjaBNotebok不是完全限定的主机名,而且您的邮件服务器被设置为拒绝没有正确主机名的客户端。

这通常是一个反垃圾邮件function,如果您的邮件服务器主要用于接收来自世界其他地方的邮件,它将减less垃圾邮件 – 但它也将减less常规邮件,尤其是当您使用它作为您的传出邮件服务器。

为了让你的邮件服务器接受像你的笔记本电脑这样的客户端的邮件,你需要看看这个参数

 smtp_helo_restrictions = reject_non_fqdn_helo_hostname 

通常情况下,如果你想减less一些垃圾邮件,但仍然允许没有configuration完整主机名的客户端,将其设置为

  smtp_helo_restrictions = reject_invalid_helo_hostname 

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

在任何情况下,你都会想要拥有

 smtp_helo_required = yes 

或者没有关于helo的规则是可以强制执行的。

它看起来像你试图login到自己的邮件服务器发送传出的邮件。

为了安全和正确地做到这一点,您需要为Postfix设置SMTP身份validation。 这是一个不重要的任务,但Postfix文档应该让你开始。

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

这样做的好处是,当您设置了SMTPvalidation时,经过validation的用户不必处理使用反向DNS条目或完全限定主机名的IP地址或邮件服务器为了安全而施加的其他限制原因。