我安装了 smtp4dev 来测试在我的本地服务器(xampp)中接收注册表单的邮件:https://github.com/panique/php-login
注意:本地服务器位于端口:8080
我的 php.ini 文件中的 SMTP 部分如下,并且 smtp 已激活,如 xampp 状态中所示:
[mail function]
SMTP = localhost
smtp_port = 25
sendmail_from = postmaster@localhost
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
;mail.log = "C:\xampp\php\logs\php_mail.log"
但我没有收到任何电子邮件,因此我通过 telnet 检查了 smtp 是否有效:
telnet localhost 25
运行 telnet 命令后我得到了这个:
220 localhost smtp4dev ready
Connection to host lost.
我怎么解决这个问题?
答案1
正如之前在评论中讨论的那样,我为可能遇到此问题的其他人写这个答案。
添加 Windows 防火墙规则以打开端口 25 将解决此问题,因为该连接拒绝连接,从而不允许 telnet 建立。
答案2
这是您的邮件服务器的合理行为。您没有给它下达任何命令,因此它关闭了连接。
如果您想通过 telnet 与服务器通信,请在连接后尝试告诉它以下内容:
EHLO user
您的用户名在哪里user
,看看您是否收到一组状态代码 250 响应。 本指南有其他关于如何通过 telnet 与 SMTP 服务器通信的示例。