PHPMailer没有给出错误信息?

时间:2016-04-28 11:56:32

标签: php email phpmailer

我正在使用PHPMailer + SMTP身份验证在Moment创建一个小小的电子邮件脚本。我现在尝试使用错误的密码发送电子邮件 - 但它仍然为成功提供“真实”......任何人都有任何想法?“

这是My Function,我用来调用sendmail:

$erfolg_email = true;
    foreach($empfaenger as $value)
    {

        $response = $this->sendMail($smtp, $value, $content, $files);
        if($response != true)
        {

            return $response;
            $erfolg_email = false;

        }

    }

这是我的PHPMailer功能

function sendMail($smtp, $empfaenger, $content, $attachements)
{

    $mail = new PHPMailer(true);

    try{

        $mail->IsSMTP();    
        $mail->Host = $smtp['SMTP'];
        $mail->SMTPAuth = true;     // turn on SMTP authentication
        $mail->Port = $smtp['Port'];
        $mail->SMTPSecure = 'tls';
        if($smtp['Domain'] != '')
        {

            $username = $smtp['Username']."@".$smtp['Domain'];

        }else
        {

            $username = $smtp['Username'];

        }
        $mail->Username = $username;  // SMTP username
        $mail->Password = $smtp['Password']; // SMTP password
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        $mail->From = $smtp['Email_Address'];
        $mail->AddAddress($empfaenger);
        $mail->WordWrap = 50;
        $mail->isHTML(true);

        foreach($attachements as $value)
        {

            $mail->AddAttachment($value);

        }
        $mail->Subject = "Mahnung";
        $mail->Body = $content;
        $mail->AltBody = "Sie haben offene Posten";

        if($mail->Send() == true)
        {

            echo $mail->ErrorInfo;
            return $mail->ErrorInfo;

        }else
        {

            return $mail->ErrorInfo;

        }

    } catch (phpmailerException $e) {

        return $e->errorMessage(); //Pretty error messages from PHPMailer

    } catch (Exception $e) {

        return $e->getMessage(); //Boring error messages from anything else!

    }
}

$ smtp包含一个包含所有SMTP信息,电子邮件地址,签名,Smtp服务器,端口,用户名,密码和SSL使用情况的数组......

我很确定,我使用了错误的用户名和密码,因为没有电子邮件通过 - 但由于发送邮件功能,我仍然得到“真实”......它甚至没有回应错误。当发送成功时,我甚至尝试给出错误消息......但没有什么

任何帮助都是赞成的!

干杯

2 个答案:

答案 0 :(得分:0)

你的函数sendMail没有返回布尔值。由于它是一个数组/对象,因此在这种情况下结果始终为true。尝试在if语句之前打印$response,您将看到错误。

答案 1 :(得分:0)

在您的php邮件程序功能文件中,您可以在最后添加此编码:

$send = $mail->Send(); //Send the mails
    if($send){
        echo '<center><h3>Mail sent successfully</h3></center>';
    }
    else{
        echo '<center><h3>Mail error: </h3></center>'.$mail->ErrorInfo;
    }
}