我有一个 CentOS 6.7 VPS,PHPMailer 5.2.14 无法连接到我的邮件服务器。我尝试过解决问题,但仍然没有解决我的问题。我的 PHP 版本是 5.6.18。我从详细调试(SMTPDebug = 4)获得的唯一输出是:
2016-03-06 23:05:40 连接:打开至 ssl://mail.server.com:465,超时=300,选项=数组()
2016-03-06 23:05:40 SMTP 错误:无法连接到服务器:(0)
我尝试修复此问题的方法如下:
- 禁用 SELinux(当前已通过 http_can_sendmail 和 http_can_network_connect 启用)
- 禁用防火墙(目前已再次启用)
- 检查 php openssl 包是否已启用(在 php -m 中列出)
- 仔细检查所有凭证(无空格,无任何内容)
其他信息:
- 可以使用 openssl s_client 在端口 465 上连接到我的邮件服务器
- PHPmailer 无需 SSL 即可通过端口 25 发送邮件
类似的帖子还有很多,不过我上面列出的方法都已经修复了。任何建议我都会非常感激。
答案1
如果邮件服务器使用无效或自签名证书,则可能需要设置allow_self_signed true
、verify_peer false
和verify_peer_name false
上下文选项。
我不是 PHPMailer 用户。我猜你可能需要设置SMTPOptions
属性。请测试这段代码(参考):
$PHPMailer->SMTPOptions = array (
'ssl' => array (
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);