我在多个项目上使用过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/