我在自我修理模板/邮件函数中使用phpmailer:
<?php
require_once(__DIR__.'/../../vendor/phpmailer/phpmailer/PHPMailerAutoload.php');
function sendTemplateMail($body, $data, $subject, $receiver, $sender){
$template = Timber::compile($body, $data);
sendMail($template, $subject, $receiver, $sender);
}
function sendMail($template, $subject, $receiver, $sender){
$mail = new PHPMailer(true); // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP // TCP port to connect to
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "**";
$mail->Password = "**";
$mail->setFrom($sender);
$mail->addAddress($receiver); // Add a recipient
$mail->addReplyTo($sender);
$mail->isHTML(true);
$mail->Subject = $subject;
$mail->Body = $template;
$mail->AltBody = $template; //$mail->AltBody = $template; //
return $mail->send();
}
在我的项目中,用户名和密码是正确的,因为它们以前起作用。但是现在我发现SMTP未连接的错误。致命错误:未知的phpmailerexception:SMTP错误:无法连接到SMTP主机。
尝试一下,将句子添加到sendmail函数:
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
您可以通过phpmailer 5.2.10中引入的smtpoptions属性允许不安全的连接(可以通过在较早版本中划分SMTP类来执行此操作),> ,尽管它不建议,因为它会失败很多完全使用安全运输的点。
在这应该是临时解决方案。