PHP的fsockopen()函数问题

时间:2010-12-09 09:55:03

标签: php smtp fsockopen

你好:) 我的PHP功能有问题。我无法理解为什么它不起作用,这对我的项目来说是一个问题。

背景:
我有Joomla并希望它通过“SMTP服务器”选项发送电子邮件。它不起作用,返回“无法连接到smtp主机” 我在谷歌搜索过这个问题,我找到的所有解决方案都不适用于我。所以我决定进入代码,看看发生了什么。当代码调用方法“fsockopen()”时,会出现问题,这是一种内置的PHP方法。此方法表示与主机的连接超时。
哪里变得有趣:我可以在同一台计算机上与该主机连接并发送电子邮件,其中包含与邮件客户端(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)在虚拟机上和虚拟机主机上打开。

如果有人知道这个功能是如何工作的以及为什么它无法连接,那么它将对我有所帮助 提前谢谢,
达明

1 个答案:

答案 0 :(得分:1)

我看到你正在使用ssl ...你是否在php.ini中启用了OpenSSL?

  

如果安装了OpenSSL支持,您可以在主机名前加上ssl://或tls://,以使用通过TCP / IP的SSL或TLS客户端连接来连接到远程主机。

http://php.net/manual/en/function.fsockopen.php