我一直运行 CentOS/Dovecot/Postfix 框作为电子邮件服务器,没有任何复杂情况。
几周前,用户无法通过外部客户端发送电子邮件。他们可以从 Outlook/Evolution/Thunderbird 客户端阅读和访问电子邮件,但无法发送任何电子邮件。
错误消息对我来说非常模糊。它基本上说的是客户端无法连接到服务器。
我没有更改任何配置文件,并且邮件日志也没有记录这些失败的尝试。
我是做这种工作的新手,我感到很困惑。
如果能帮助指出任何可能的原因、我遗漏的日志或我可以研究的任何资源,我将不胜感激。
编辑:我可以通过本地基于网络的电子邮件客户端(如 roundcube 或 squirrel)发送电子邮件。
更新:
按照 Matt Simmons 的建议,我尝试远程登录服务器。我可以从内部连接,但不能从外部连接。然后我决定更改端口,这样就可以从外部连接,并从外部客户端发送电子邮件,这些邮件来自我域中的电子邮件帐户。
但是,现在我无法接收来自我服务器之外的帐户的电子邮件。请帮忙。我解决了小问题,却带来了大问题。
答案1
我发现我的 ISP 正在阻止端口 25。我正在使用提交端口。
按照 Matt Simmons 的建议尝试从外部和内部使用 telnet 进行连接,这为我指明了正确的方向,并在以下线程中得到了最后的提示:
我的 ISP 正在阻止端口 25。端口 587 可以替代吗?
谢谢。
答案2
我不用 Centos,但用 RHEL。RHEL 有个问题我经常忘记检查,那就是 SELinux。
尝试关闭它,setenforce 0
看看是否有区别。有时人们在设置时将其关闭,然后忘记在配置文件中永久更改,然后在重新启动时它又恢复了,并且一切停止工作,
答案3
步骤1- 服务是否正在运行?
service dovecot status
如果没有,那么
service dovecot start
第2步- 您能通过端口 25 和 443 远程登录到本地主机吗?
如果没有,请尝试重新启动服务并再次检查。如果仍然无法完成,请检查邮件日志和消息以获取有用的输出。您可能必须在调试模式下运行服务器(我不知道该怎么做,但您应该能够通过阅读 /etc/init.d/dovecot 来弄清楚)
步骤3- 您可以从其他机器通过这些端口 telnet 到服务器吗?
如果没有,请检查该机器上的防火墙。检查 /etc/hosts.deny。检查您尝试连接的机器上的防火墙。
如果您已成功完成此操作并且一切正常,但您的客户端仍然无法连接,那么是时候尝试成为客户端了。 Telnet 到服务器上的端口 25(从另一台计算机)并假装是 smtp 客户端:
HELO fakeclient
MAIL FROM [email protected]
RCPT TO: [email protected]
DATA
To: [email protected]
From: myemail.com
Subject: Test 1
This is test 1
.
希望会出现一些诊断消息,让您知道为什么它没有被接受传送。如果它被接受传送,则假装是 IMAP 服务器
Telnet 到机器上的 443 端口,然后执行以下操作:
? LOGIN username password
? LIST "" "*"
? LOGOUT
如果您成功到达这一步,则邮件客户端已损坏。检查代理配置是否损坏,或者在最坏的情况下重新安装。
答案4
使用提交端口的问题在于它通常仅供经过身份验证的用户使用。因此,外部邮件服务器不会尝试使用提交端口将邮件发送到您的服务器。