から完全なエラーメッセージを取得します。私は、SMTPメールを送信するためにphpmailerのクラスを使用していますが、私はMySQLのテーブルにPHPmailerExceptionからログを追跡する必要があり、phpmailerの例外
コード:
$mail = new PHPMailer(true);
try {
$mail->Host =$dmmodel->host;
$mail->Username= $dmmodel->username;
$mail->Password= $dmmodel->password;
$mail->Mailer='smtp';
$mail->Port=$dmmodel->port;
$mail->SMTPAuth = true;
$mail->SMTPSecure = ($dmmodel->smtp_enableSSL==1?'ssl':($dmmodel->smtp_enableSSL==2 ? 'tls':''));
$mail->SMTPDebug = 2;
$mail->From = $dmmodel->email_from;
$mail->FromName = $dmmodel->name_from;
$mail->Subject = $this->getContentBody($docmodel->content_subject,$docmodel->crm_base_contact_id,$_POST["taskid"],$postcode,$recall_by,$recall_dt,true);
$mail->AddAddress($email[$i]);
$mail->IsHTML(true);
}
catch (phpmailerException $e)
{
$msg = "Email Delivery failed -" . $e->errorMessage();
echo "Email not sent";
}
ここで、$ msg変数にはメッセージのみが含まれています。「SMTPエラー:認証できませんでした」 この問題の原因が完全に表示されています(下記参照)
SMTP - >サーバーから:220 smtp.gmail.com ESMTP n3sm27565307paf.13 - gsmtp
SMTP - >サーバーから:250-smtp.gmail.comあなたのサービスで、[122.164.189.101] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8
SMTP - > ERROR:パスワードがサーバから受け入れられない:535-5.7.8ユーザー名パスワードは受け入れられません。 250 2.1.5フラッシュさn3sm27565307paf.13 - 私は上記のメッセージを保存することができますどのように
を送信されませんgsmtp
電子メール: - gsmtp
SMTP - >サーバーから 535 5.7.8 https://support.google.com/mail/?p=BadCredentials n3sm27565307paf.13で詳細をご覧ください変数 ?誰も私がこの完全なメッセージに
check http://stackoverflow.com/questions/27122711/phpmailer-debug-output-to-html-variableおよびhttps://github.com/PHPMailer/PHPMailer/blob/master/docs/Note_for_SMTP_debugging.txt – ADev
これらのノートを更新して、これをより明確にしました。これを行う方法は、独自のDebugoutputハンドラを挿入してすべてのメッセージをキャプチャすることです。 – Synchro