helo
我的 SMTP 服务器合法且正确的是什么?
- 仅发送电子邮件。
- 在 NAT 后面,没有打开入站端口。
- SMTP 服务器没有 FQDN。
- 为 2 个不同的域发送邮件
我们是一家拥有多个分支机构的小型企业。我们有 2 个不同的网站,其中包含电子邮件地址,例如:
我们的 SMTP 服务器将为这两个域发送电子邮件。
RFC2821 第 4.1.1.1 节
...并且没有可用的反向映射记录),客户端应该发送一个地址文字(参见第 4.1.3 节),可选地后跟有助于识别客户端系统的信息。
4.1.3 地址文字**
...为了绕过这个障碍,允许使用地址的特殊文字形式作为域名的替代。对于 IPv4 地址,此形式使用四个小十进制整数,以点分隔并用方括号括起来,例如 [123.255.37.2] ...
因此我认为我的helo
名字应该是:
[1.2.3.4] company name INC city, state
后缀配置
smtp_helo_name = [1.2.3.4] company name INC city, state
使用这个我仍然收到以下错误:
... status=bounced (host mx1c38.carrierzone.com[66.175.58.41] refused to talk to me: 501 5.0.0 Invalid domain name
... status=bounced (host mta5.am0.yahoodns.net[98.138.112.38] refused to talk to me: 501 Syntax error in parameters or arguments
... status=bounced (host kakllc.com[67.214.161.202] said: 550 Access denied - Invalid HELO name (See RFC2821 4.1.1.1) (in reply to MAIL FROM command)
和其他类似的错误都与helo
.
这是正确的吗helo
?
答案1
为主机提供一个 FQDN,例如foo.product1.com
。将 设HELO
为此完全限定域名。确保外部 DNS 可以解析该名称。否则,您会看到大量拒绝,正如所观察到的,因为阻止此类邮件(可能通过类似的方式smtpd_helo_restrictions = reject_invalid_hostname reject_non_fqdn_hostname
)是消除一定比例的传入垃圾邮件的廉价方法。
答案2
使用 postfix(在 Ubuntu 16.04.3 上),我在 /var/log/mail.log 的 postfix 日志中收到访问被拒绝的消息:
550 访问被拒绝 - HELO 名称无效(请参阅 RFC2821 4.1.1.1)(回复 MAIL FROM 命令)
为了尝试让它工作,我在 /etc/hosts 中添加了主机的 FQDN 条目并更改了主机名。仅此一点是行不通的 - 通过注释掉后缀配置的以下行/etc/postfix/main.cf
我能够使其工作:
#myhostname = ubuntu
myhostname
您可以在中阅读该设置的默认行为文档。
要在更改配置后重新启动 postfix,我使用了以下命令:
sudo service postfix restart