web-dev-qa-db-ja.com

PHPMailerは、SMTPDebug = trueの場合にのみ電子メールを送信します

PHPmailerを使用しています。 $ mail-> SMTPDebug = trueの場合に機能します。しかし、その行を削除すると、黙って失敗します。エラーが発生しないため、黙って失敗すると言いますが、メールは配信されていないようです。

        $mail = new PHPMailer;

        $mail->SMTPDebug = true;
        $mail->SMTPAuth = true;
        $mail->CharSet = 'utf-8';
        $mail->SMTPSecure = 'ssl';
        $mail->Host = 'smtp.gmail.com';
        $mail->Port = '465';
        $mail->Username = '[email protected]';
        $mail->Password = 'xxxxx';
        $mail->Mailer = 'smtp';
        $mail->AddReplyTo('[email protected]', 'xxxxx Support');
        $mail->From = '[email protected]';
        $mail->FromName = 'xxxxx Applications';
        $mail->Sender = 'xxxxx Applications';
        $mail->Priority = 3;

        //To us
        $mail->AddAddress('[email protected]', 'xxxxx xxxxx');
        //To Applicant
        $mail->AddAddress($email, $first_name.''.$last_name);
        $mail->IsHTML(true);

        $last_4_digits = substr($card_num, -4);
        //build email contents

        $mail->Subject = 'Application From '.$first_name.' '.$last_name;
        $mail->Body    = $body_html;
        $mail->AltBody = $body_text;

        if(!$mail->send()) {
           echo 'Message could not be sent.';
           echo 'Mailer Error: ' . $mail->ErrorInfo;
           exit;
        }
7
Chris J Allen

設定することにより

        $mail->SMTPDebug = false;

行を完全に省略する代わりに、毎回機能します。

14
Chris J Allen