我正在使用带有 smtp 的 postfix 的 centos 7。邮件服务器运行良好,但后来停止工作了。我无法通过 telnet 连接到 Gmail 或端口 25,587,465 上的任何其他服务器。但是,当我telnet myowndomain.com 25
< 时它可以工作。
好像我无法远程登录到端口 25 或任何其他服务器的端口。错误如下所示。
6 月 16 日 05:24:06 SSSS postfix/submission/smtpd[25687]: 从未知 [172.17.0.2] 连接 6 月 16 日 05:24:06 SSSS postfix/submission/smtpd[25687]: 从未知 [172.17.0.2] 建立匿名 TLS 连接:TLSv1.2,密码为 ECDHE-RSA-AES256-GCM-SHA384(256/256 位)
6月16日 05:24:06 SSSS postfix/submission/smtpd[25687]: 0F69747687: 客户端=未知[172.17.0.2]
6月16日 05:24:06 SSSS postfix/cleanup[25690]: 0F69747687: message-id=<[电子邮件保护]>
6月16日 05:24:06 SSSS postfix/qmgr[24527]: 0F69747687: from=, size=6806, nrcpt=1 (队列活跃)
6 月 16 日 05:24:06 SSSS postfix/submission/smtpd[25687]: 与未知 [172.17.0.2] 断开连接 6 月 16 日 05:24:12 SSSS postfix/smtpd[25473]: 与未知 [89.248.171.223] 连接
6月16日 05:24:12 SSSS postfix/smtpd[25473]:警告:未知[89.248.171.223]:SASL LOGIN 身份验证失败:身份验证失败
6月16日 05:24:12 SSSS postfix/smtpd[25473]: 断开与未知的连接 [89.248.171.223]
6月16日 05:24:36 SSSS postfix/smtp[25691]: 连接到 smtp1.linuxfoundation.org[140.211.169.13]:25: 连接超时
6 月 16 日 05:24:55 SSSS postfix/smtpd[25473]: 从未知 [155.133.64.146] 连接 6 月 16 日 05:24:55 SSSS postfix/smtpd[25473]: 警告:未知 [155.133.64.146]: SASL LOGIN 身份验证失败:身份验证失败 6 月 16 日 05:24:55 SSSS postfix/smtpd[25473]: 与未知 [155.133.64.146] 断开连接
主文件:
inet_protocols = ipv4
inet_interfaces = all
smtpd_recipient_restrictions = permit_sasl_authenticated ,permit_mynetworks , reject_invalid_hostname, reject_unauth_destination,check_helo_access hash:/etc/postfix/helo_access, reject_non_fqdn_recipient, reject_rbl_client zen.spamhaus.org, reject_rbl_client bl.spamcop.net
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
telnet连接:
[root@mail ~]# telnet alt4.gmail-smtp-in.l.google.com 25
Trying 74.125.28.27...
telnet: connect to address 74.125.28.27: Connection timed out
Trying 2607:f8b0:400e:c04::1a...
telnet: connect to address 2607:f8b0:400e:c04::1a: Network is unreachable
有什么解决办法吗?我已经尝试了网上的许多教程,但没有帮助。
答案1
这看起来不像是您的邮件服务器配置的问题。
在我看来,您的提供商似乎正在阻止 SMTP - 这并不罕见。如果他们这样做,您需要要求他们解除阻止,或者通过他们的 SMTP 服务器转发您的电子邮件,方法是在您的 postfix main.conf 文件中添加一行“relayhost = XXX.XXX.XXX.XXX”。
为了安全起见,您可能需要尝试以下两行来排除您的机器上的防火墙问题。
iptables -I OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -I INPUT -m state --state ESTABLISEHD,RELATED -j ACCEPT
答案2
您可以使用tcptraceroute
程序来定位连接被阻止的位置。
答案3
如果您要向端口 25 发送电子邮件,则需要使用静态 IP 以避免邮件被归类为垃圾邮件。许多 ISP 会阻止来自动态 IP 地址的端口 25 上的外发电子邮件。您需要进行一些 DNS 配置,包括与您的 ISP 协调以配置正确的 PTR 记录。他们还可能阻止 465(SMTPS),由于协议中提供了 startTLS,因此该端口现在已被视为已弃用。您的 ISP 应该提供一个 SMTP 中继服务器,您可以通过该服务器发送电子邮件。
许多 ISP 可能会对静态 IP 地址收费,在某些情况下甚至对商务级服务收费。小型 ISP 更有可能根据要求或以最低费用提供静态 IP 地址。
端口 587(提交)被 ISP 封锁的情况并不常见。这需要身份验证才能发送邮件,这使得使用它发送垃圾邮件更加困难。如果它被封锁,我会检查你自己的防火墙配置。
许多 ISP 已将其动态 IP 范围提供给黑名单提供商。何时以及是否使用此功能来阻止连接,由您连接的邮件服务器的管理员决定。该tcptraceroute
命令可用于确定您是否在终端站点被阻止。
某些网站可能会调用您的电子邮件服务器来确保您是合法发件人。在连接之前执行此操作并不常见,但如果您尚未将路由器中的电子邮件流量转发到服务器,则此操作将失败。
大多数/许多 ISP 不提供 IPv6,因此尝试通过 IPv6 连接将失败。您可以使用隧道代理来解决该问题。这将使您能够为邮件服务器配置静态 IPv6 地址。(同样,您需要适当配置 DNS。)
正确配置邮件服务器并不难。然而,即使是银行、航空公司和政府也会出错。