fsockopen ssl连接不工作
问题描述:
我想在我的本地服务器上使用ssl端口465上的apache使用php函数fsockopen在smtp服务器上。 它适用于php命令行,但脚本在浏览器中运行时遇到SSL错误。fsockopen ssl连接不工作
任何帮助将通过Apache不胜感激:-)
的php.ini
extension=php_openssl.dll line is not commented
的phpinfo带命令行的
Loaded Configuration File => D:\localhost\php-5.4.11\php.ini
openssl
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 0.9.8x 10 May 2012
OpenSSL Header Version => OpenSSL 0.9.8x 10 May 2012
我的脚本
Loaded Configuration File : D:\localhost\php-5.4.11\php.ini
openssl
OpenSSL support enabled
OpenSSL Library Version OpenSSL 0.9.8x 10 May 2012
OpenSSL Header Version OpenSSL 0.9.8x 10 May 2012
的phpinfo
<?php
$smtp = fsockopen('ssl://in.mailjet.com', 465, $errno, $errstr, 30);
$response = fgets($smtp, 4096);
if(empty($smtp)){
echo $response;
return false;
}
echo $response . '<br/>';
fclose($smtp);
apache下输出
Warning: fsockopen(): SSL: crypto enabling timeout in XXX on line 2
Warning: fsockopen(): Failed to enable crypto in XXX on line 2
Warning: fsockopen(): unable to connect to ssl://in.mailjet.com:465 (Unknown error) in XXX on line 2
与命令行输出
220 srv12.mailjet.com ESMTP Mailjet
<br/>
平台
我使用PHP 5.4.11 /阿帕奇2.2.22(Win32的)上Windows 8 64
- 编辑 - 我已经使用TLS尝试的建议:
$smtp = fsockopen('tls://in.mailjet.com', 567, $errno, $errstr, 30);
我也得到
E_WARNING: fsockopen(): in XXX on line XXX
错误信息是空白和$错误号=(INT)0,$ errstr =(字符串)' '
答
我将我的Apache版本从2.2更新到2.4,现在可以使用。
我按照此tutoriel:http://lifeofageekadmin.com/how-install-apache-2-4-php-5-4-and-mysql-5-5-21-on-windows-7/获取新的Apache版本。
答
我在和其使用验证码的接触形式类似的问题,得到错误的fsockopen():无法连接到SSL://mail.google.com:443
这是一个FreeBSD VM ,与Joomla安装。
搜索,我发现http://php.net/manual/en/function.fsockopen.php其中提到了证书验证。
安装FreeBSD的端口“ca_root_nss”其中包括的根证书的证书验证从包含在Mozilla的NSS库
您可能想看看使用像[SwiftMailer(HTTP库证书颁发机构:// swiftmailer。组织/)而不是滚动您自己的SMTP客户端。但是,请尝试使用'tls://'包装器而不是'ssl://'。如果这不起作用,请尝试使用'tcp://'封装器进行连接,并使用'stream_socket_enable_crypto()'手动启用流中的加密。错误消息说有一个超时发生 - 启动脚本后多久你会得到错误信息(即多长时间超时?) – DaveRandom 2013-03-25 10:06:39
我试过这个:'code' fsockopen('tls:// in.mailjet。com',567,$ errno,$ errstr,30); '代码',我得到E_WARNING:fsockopen():在XXX上XXX XXX – 2013-03-25 10:09:29
你得到一个空白的错误信息? – DaveRandom 2013-03-25 10:14:36