我们正在合作的一家银行正尝试向我们公司的电子邮箱发送一封自动生成的电子邮件,但它一直被退回,并出现以下 SMPT 错误:
状态:5.5.0 诊断代码:smtp;550 访问被拒绝 - HELO 名称无效(参见 RFC2821 4.1.1.1)
由于我不是公司的系统管理员,所以我无法判断问题是出在银行方面还是我们的邮件服务器方面。
有人能在这里提出问题是什么吗?例如,是否需要对我的电子邮件服务器进行任何更改。我只能访问我公司托管的 cPanel。
答案1
根据错误消息,发送服务器在 smtp HELO 中没有使用完全限定的域名,因此例如它不是使用“servername.example.com”进行 helo,而是可能只使用“servername”进行 helo(检查服务器日志以了解实际值)许多接收 MTA 会阻止这种行为。
发件人应该修复 HELO。
答案2
根据文档外这意味着以下内容
rejection_invalid_helo_hostname (Postfix <2.3: rejection_invalid_hostname)
当 HELO 或 EHLO 主机名格式错误时拒绝请求。注意:指定“smtpd_helo_required = yes”以完全执行此限制(如果没有“smtpd_helo_required = yes”,客户端可以通过不发送 HELO 或 EHLO 来跳过 rejection_invalid_helo_hostname)。invalid_hostname_reject_code 指定拒绝请求的响应代码(默认值:501)。
如果你无法联系发件人,那么你可以将其添加到例外中
smtpd_helo_restrictions =
check_helo_access hash:/etc/postfix/hello_access
reject_invalid_helo_hostname
reject_non_fqdn_helo_hostname
...
/etc/postfix/hello_access
invalid_helo_name_from_bank OK
之后你需要创建一个地图
# postmap /etc/postfix/hello_access
并重新启动 postfix
为了进出口银行它可能看起来像
acl_smtp_helo = acl_check_helo
...
begin acl
acl_check_helo:
accept
hosts = xxx.xxx.xxx.xxx
condition = ${if eq{$sender_helo_name}{"invalid_helo_name_from_bank_smtp_server"}{yes}{no}}
...
另外,您可以添加例外
helo_accept_junk_hosts = xxx.xxx.xxx.xxx
其中 xxx.xxx.xxx.xxx 是银行 smtp 服务器的 ip 地址
答案3
要求您的托管公司进入:
“根 WHM > 服务配置 > Exim 配置管理器 > 基本编辑器 > ACL 选项”
并将Require RFC-compliant HELO
设置改为Off
我不知道他们是否会为您做到这一点,因为这是 Exim 配置中服务器范围的更改,而不是他们可以仅为您的 cPanel 帐户设置的更改。
答案4
根据您的错误消息,主机名看起来是正确的。
无效主机名:hostaname2
我建议您使用它:hostaname2.domainname.com
并在最佳结果的 DNS 服务器上创建 A 记录。
在 cantos 上更改root@host:~ hostname hostaname2.domainname.com