截至昨天,我的邮件服务器(位于 mail.simunomics.com)在邮件客户端方面运行正常 - 发送和接收。但是,由于尚未配置,它无法与收件人服务器正确进行身份验证。(导致自动过滤到垃圾邮件/垃圾文件夹。)所以今天我通过添加 spf、dkim 和 dmarc 以及创建 rDNS 记录来改进身份验证。
但是现在,使用昨天正常工作的邮件客户端上的相同设置,我无法连接 SMTP。收件正常。如果我尝试直接通过服务器发送邮件,无论是通过 cPanel 网络邮件还是(比如说)通过 phpmailer 脚本自动发送,都可以。只有远程连接到 SMTP 才是问题所在。
我测试过https://www.smtper.net/并且似乎如果我在端口 465 上使用安全连接,操作就会超时。如果我在端口 587 上使用不安全的连接,我很快就会收到错误“访问被拒绝 - 无效的 HELO 名称(请参阅 RFC2821 4.1.1.1)”。所以我不知道是什么不允许这样做,因为这不是实际的凭据。
你知道我可能搞砸了什么吗?或者该去哪里找?谢谢。
答案1
端口 587 不一定不安全:它可能要求客户端使用命令明确请求使用加密STARTTLS
。如果不使用 STARTTLS,服务器可能只接受来自受信任网络的不安全连接,或者可能只接受来自本地主机的不安全连接。
此外,SMTP 服务器通常会对传入连接的源 IP 地址执行反向 DNS 查找,以获取客户端的完全合格域名。客户端应该在其初始 HELO/EHLO 命令中使用该 FQDN(或者如果它无法知道自己的 FQDN,则可能使用原始 IP 地址)。
如果客户端在其 HELO/EHLO 命令中使用的名称/地址与连接的源 IP 地址或反向 DNS 查找可用的 FQDN 不匹配,则服务器可能会拒绝该连接,因为这是较旧的反垃圾邮件测试之一。
维护良好的邮件服务器具有静态公共 IP 地址和与服务器配置一致的 DNS 注册以及正向和反向查找;垃圾邮件发送者(或带有电子邮件发送恶意软件的随机计算机)可能位于 ISP 的 NAT 后面,无法满足此要求。
答案2
这应该是一条注释,但太长了。您是否考虑过使用原始 telnet(或 ncat)进行测试/调试?以下是我得到的:
# telnet mail.simunomics.com 587
Trying 173.249.157.178...
Connected to mail.simunomics.com.
Escape character is '^]'.
220-server.simunomics.com ESMTP Exim 4.89_1 #1 Fri, 29 Dec 2017 13:55:38 +0000
220-We do not authorize the use of this system to transport unsolicited,
220 and/or bulk e-mail.
HELO is.it.me.your.looking.for.com
250 server.simunomics.com Hello is.it.me.your.looking.for.com [193.183.99.226]
MAIL FROM: <[email protected]>
250 OK
RCPT TO: <[email protected]>
550 SMTP AUTH is required for message submission on port 587
Connection closed by foreign host.