我在多个项目上使用过PHPMailer,但现在遇到了麻烦。它给了我错误:
SMTP错误:无法连接到SMTP主机。
我已经尝试过从Thunderbird发送电子邮件,并且可以正常工作!但是不能通过PHPMailer ...这是Thunderbird的设置:

服务器名称:mail.exampleserver.com
端口:587
用户名:[email protected]
安全身份验证:否
连接安全性:STARTTLS


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

服务器名称:mail.exampleserver2.com
港口:465
用户名:[email protected]
安全身份验证:否
连接安全性: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

我哪里错了?

最佳答案

由于此问题在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中所建议的那样,这应该是一个临时解决方案!

关于php - PHPMailer:SMTP错误:无法连接到SMTP主机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3477766/

10-12 01:03