PHPMailer: SMTP错误:无法连接到SMTP主机
P粉990008428
P粉990008428 2023-10-12 21:00:22
0
1
734

我已经在几个项目中使用了 PHPMailer,但现在我陷入了困境。它给了我错误:

SMTP 错误:无法连接到 SMTP 主机。

我尝试过从 Thunderbird 发送电子邮件,它有效!但不是通过 PHPMailer ...以下是 Thunderbird 的设置:

服务器名称:mail.exampleserver.com

端口:587

用户名:user@exampleserver.com

安全身份验证:否

连接安全:STARTTLS

我将它们与我上一个使用 PHPMailer 的项目中的服务器进行了比较,它们是:

服务器名称:mail.exampleserver2.com

端口:465

用户名:user@exampleserver2.com

安全身份验证:否

连接安全:SSL/TLS

我的 php 代码是:

$mail = new PHPMailer();
 $mail->IsSMTP(); // send via SMTP
 $mail->Host = SMTP_HOST; // SMTP servers
 $mail->Port = SMTP_PORT; // SMTP servers
 $mail->SMTPAuth = true; // turn on SMTP authentication
 $mail->Username = SMTP_USER; // SMTP username
 $mail->Password = SMTP_PASSWORD; // SMTP password
 $mail->From = MAIL_SYSTEM;
 $mail->FromName = MAIL_SYSTEM_NAME;
 $mail->AddAddress($aSecuredGetRequest['email']);
 $mail->IsHTML(true); // send as HTML

我哪里错了?

P粉990008428
P粉990008428

全部回复(1)
P粉352408038

由于这个问题在 google 中出现率很高,因此我想在这里分享我针对 PHP 刚刚升级到版本 5.6(具有更严格的 SSL 行为)的情况的解决方案。

PHPMailer wiki 有一个关于此的部分:

https://github.com/PHPMailer/ PHPMailer/wiki/Troubleshooting#php-56-certificate-verification-failure

建议的解决方法包括以下代码:

$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);

这应该适用于 PHPMailer 5.2.10(及更高版本)。

注意:显然,正如该 wiki 中所建议的,这应该是一个临时解决方案!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!