0

几个月来,我一直在使用 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();       
}

我的亚马逊账户仍然是最新的并且是活跃的。有没有办法打印出更详细的错误消息以进行调试?最近有什么已知的问题吗?

4

2 回答 2

0

尝试 :

$mail->SMTPDebug = 1;
// if you're using SSL
$mail->SMTPSecure = 'ssl';
// OR use TLS
$mail->SMTPSecure = 'tls';
于 2013-05-02T20:15:00.793 回答
0

这是一个非常古老的问题,但我只是遇到了同样的问题,所以它可能仍然与其他人有关。如果它在您没有更改任何内容的情况下停止工作,则它可能连接到您的托管公司/ isp,阻止了从您的服务器到其他服务器的 SMTP 流量。关于此有几个主题,因为使用 Cpanel 和 Godaddy 的多家托管公司已经实施了此类打击垃圾邮件的措施。尝试:

$mail->SMTPDebug = 3;

以获得有关错误的最大详细信息。一种解决方案是在同一个主机帐户中使用邮件服务器(如果它阻止 SMTP 到外部,它可能具有您可以使用的内部服务)。要继续使用 Amazon SES,您需要在服务器上打开 SMTP 流量。如果您可以控制 Cpanel/WHM“调整设置”,您可以自己完成,否则您需要询问您的托管服务提供商。使用 GMail 和 phpMailer 发送时,请检查此答案以获取详细信息“服务器不接受密码:535 身份验证数据不正确”

于 2019-01-26T12:25:26.487 回答