0

您好 :)
我对 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
套接字支持:启用
操作系统:Ubuntu 10.10 在虚拟机(VMWare)下
端口:端口 25(smtp)在虚拟机和虚拟机主机上打开。

如果有人知道此功能如何工作以及为什么无法连接,它将对我有很大帮助,
在此先感谢
Damien

4

1 回答 1

1

我看到您正在使用 ssl...您在 php.ini 中启用了 OpenSSL 吗?

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

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

于 2010-12-09T09:57:59.530 回答