我一直在使用PHPmailer(https://github.com/Synchro/PHPMailer)通过亚马逊SES发送电子邮件几个月。在过去两周的某个时间,它已停止工作,我没有触及它。我收到错误信息:
SMTP Error: Could not connect to SMTP host.
这是我的代码。
public function sendEmail($to,$subject,$body){
$mail = new PHPMailer;
$mail->IsSMTP(); // Set mailer to use SMTP
$mail->Host = 'amazonaws....'; // Specify main and backup server
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'mySMTPuname'; // SMTP username
$mail->Password = 'smtpPword'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted
$mail->From = 'example';
$mail->FromName = 'me';
$mail->AddAddress($to); // Name is optional
$mail->IsHTML(true); // Set email format to HTML
$mail->Subject = $subject;
$mail->Body = $body;
return $mail->Send();
}
public function sendEmail($to,$subject,$body){
$mail = new PHPMailer;
$mail->IsSMTP(); // Set mailer to use SMTP
$mail->Host = 'amazonaws....'; // Specify main and backup server
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'mySMTPuname'; // SMTP username
$mail->Password = 'smtpPword'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted
$mail->From = 'example';
$mail->FromName = 'me';
$mail->AddAddress($to); // Name is optional
$mail->IsHTML(true); // Set email format to HTML
$mail->Subject = $subject;
$mail->Body = $body;
return $mail->Send();
}
我的亚马逊帐户仍然是最新且活跃的。有没有办法打印出更详细的错误消息进行调试?最近有没有已知的问题?
答案 0 :(得分:0)
尝试:
$mail->SMTPDebug = 1;
// if you're using SSL
$mail->SMTPSecure = 'ssl';
// OR use TLS
$mail->SMTPSecure = 'tls';
答案 1 :(得分:0)
这是一个非常老的问题,但是我也遇到了同样的问题,因此它可能仍然与其他问题有关。 如果在不进行任何更改的情况下停止工作,则可能是您的托管公司/ isp已连接,从而阻止了从服务器到其他服务器的SMTP通信。 有几个主题,因为使用Cpanel和Godaddy的多家托管公司已实施了此类措施来打击垃圾邮件。 试试:
$mail->SMTPDebug = 3;
以获取有关错误的最大详细程度。 一种解决方案是在同一托管帐户中使用邮件服务器(如果它将SMTP阻止到外部,则它可能具有可以使用的内部服务)。 要继续使用Amazon SES,您需要在服务器上打开SMTP通信。 如果您可以控制Cpanel / WHM“调整设置”,则可以自己进行,否则,您需要询问托管服务提供商。 查看此答案以获取详细信息"Password not accepted from server: 535 Incorrect authentication data" when sending with GMail and phpMailer