gpt4 book ai didi

php - PHP SMTP服务器使用套接字: connection refused

转载 作者:行者123 更新时间:2023-12-03 12:06:47 25 4
gpt4 key购买 nike

在我的个人项目之一中,我正在用PHP开发基本的SMTP服务器。当我从命令行单独启动它时,它就可以使用了。我可以通过telnet正确访问它,并且它可以正确响应SMTP命令,并且我也可以通过使用此服务器发送电子邮件的php脚本正确访问它。

现在,当我从php脚本而不是从命令行启动服务器时遇到问题(我使用exec函数来完成)。当我通过telnet访问服务器时服务器正确响应,但不再通过发送电子邮件的php脚本响应。

有人可以帮我吗?

注意

要从php脚本发送电子邮件,我使用Mail PEAR扩展名。当我从脚本中启动服务器并尝试以相同的过程发送电子邮件时,出现此错误:
SMTP: Failed to connect socket: Connection refused (code: -1, response: )
摘要

我的服务器实现是在server.php中,发送电子邮件的脚本是在mail-test.php中。

1)如果我通过以下方式在命令行上启动服务器:php server.php,然后启动php mail-test.php,则脚本将正常处理并发送电子邮件。我还可以通过telnet 127.0.0.1 3535访问服务器并与服务器正常通信。

2)使用另一个名为test.php的脚本,我想包装服务器管理,通过exec("php server.php > /dev/null 2>&1 &");启动服务器,然后从该脚本中一次发送邮件。这样做,服务器已正确启动(我可以通过telnet访问它),但是从test.php发送的电子邮件因此在服务器启动后引发了错误。如果我在终止test.php进程之前从另一个脚本发送了电子邮件,则电子邮件已正确发送...

我希望我足够明确。

最佳答案

奇怪的是,我通过设置SO_RCVTIMEO来解决此问题:
socket_set_option($sock, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 0, 'usec' => 500))
我收到的错误消息并不是很有意义。

我希望它能帮助其他面临类似问题的人。

关于php - PHP SMTP服务器使用套接字: connection refused,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3684045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com