PHP的fsockopen()函数问题
你好:)
我对 PHP 的函数有疑问。我不明白为什么它不能工作,这对我的项目来说是一个问题。
上下文:
我有 Joomla 并希望它通过选项“SMTP 服务器”发送电子邮件。它不起作用,返回的是“无法连接到 smtp 主机”。
我在谷歌中搜索了这个问题,但我发现的所有解决方案都不适合我。所以我决定进入代码看看发生了什么。当代码调用内置 PHP 方法“fsockopen()”时,就会出现问题。该方法表示与主机的连接超时。
有趣的是:我可以在同一台计算机上使用与邮件客户端(Evolution)完全相同的参数连接并发送电子邮件(因此这不是开放端口或其他问题的问题)。
方法是:
fsockopen($host, $port, $errno, $errstr, $tval);
使用的参数和返回的错误:
$host : ssl://smtp.laposte.net.
$port : 25
$errno : 110
$errstr : Connection timed out
$tval : 10
一些技术信息:
PHP 版本:5.2.14
套接字支持:已启用
操作系统:虚拟机(VMWare)下的Ubuntu 10.10
端口:端口 25 (smtp) 在虚拟机和虚拟机的主机上打开。
如果有人知道这个功能如何工作以及为什么它无法连接,这将对我有很大帮助,
预先感谢,
达米安
Hi there :)
I have a problem with a function of PHP. I can't understand why it cannot work, and that's a problem for my project.
The context :
I have Joomla and want it to send email via the option "SMTP server". It's not working and the return is "Can't connect to smtp host".
I had searched in google for that problem and all the solutions I found didn't work for me. So I decided to go into the code to see what happened. The problem occurs when the code call to the method "fsockopen()", a built-in PHP method. This method say that the connection to the host timed out.
Where it becomes funny : I can connect and send email with this host, with exact same parameters with a mail client (Evolution), on the same machine (so it's not a problem of opened port or something else).
The method is :
fsockopen($host, $port, $errno, $errstr, $tval);
The used parameters and error returned :
$host : ssl://smtp.laposte.net.
$port : 25
$errno : 110
$errstr : Connection timed out
$tval : 10
Some technical information :
PHP Version : 5.2.14
Sockets Support : enabled
OS : Ubuntu 10.10 under a virtual machine (VMWare)
Port : port 25 (smtp) is open on the virtual machine AND on the host of the virtual machine.
If someone had an idea how this function work and why it cannot connect, it will help me A LOT,
Thanks in advance,
Damien
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我看到您正在使用 ssl...您是否在 php.ini 中启用了 OpenSSL?
http://php.net/manual/en/function.fsockopen.php
I see you are using ssl... do you have OpenSSL enabled in php.ini?
http://php.net/manual/en/function.fsockopen.php