【发布时间】:2011-10-06 04:42:42
【问题描述】:
几天以来,我一直在尝试通过我新安装的 Ubuntu 服务器上的 fsockopen() 与 PHP 中的 SMTP 服务器建立 TLS 连接。我几乎尝试了所有方法并在 Google 上搜索了几个小时,但仍然无法正常工作。
PHP 代码如下所示:
$fp = fsockopen("tls://smtp.xxxx.com", 25, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
// some other stuff
}
输出只是 (0),即 $errstr = null 和 $errno = 0。
OpenSSL 已安装并启用:
OpenSSL support: enabled
OpenSSL Library Version: OpenSSL 0.9.8o 01 Jun 2010
OpenSSL Header Version: OpenSSL 0.9.8o 01 Jun 2010
并注册了以下流套接字传输: tcp、udp、unix、udg、ssl、sslv3、sslv2、tls。
端口在控制台的 telnet 工作时打开。
任何想法有什么问题或我如何至少获得更多的调试输出?
谢谢, 马库斯
【问题讨论】:
-
您在
/etc/php/apache2/php.ini中打开了错误日志记录?错误日志中的内容是什么? -
是的,它已启用。 apache 错误日志中的错误是:[Fri Jul 15 15:50:07 2011] [error] [client 95.233.109.135] PHP Warning: fsockopen(): unable to connect to tls://smtp.gmail.com:第 3 行 /var/www/test.php 中的 587(未知错误)我刚刚对其进行了测试。如果我通过“php test.php”从命令行执行脚本,它就可以工作。