PhPMailer - 您必须提供至少一个收件人电子邮件地址 - 但无论如何都要发送邮件

时间:2016-09-27 10:57:17

标签: php email smtp phpmailer

我有一个PHPMailer设置工作正常,但当我添加BCC时,它开始报告错误。我看不出究竟是什么导致了这个问题。

我收到了此错误报告:您必须至少提供一个收件人电子邮件地址。

奇怪的是,它正确地向两个收件人发送电子邮件,但从未改变我的'succes.php'页面。它只是简单地显示错误报告。

我几乎已经尝试过ADD和Clear的任何组合,但仍然会遇到一些问题。我现在面临的是,发送电子邮件,但仍然报告错误。

我的设置是这样的:

    try {
        // Ens for all
        $mail->Host       = 'localhost'; // SMTP server
        $mail->AddReplyTo('no-reply@XXX.dk', 'XXX Mailer');
        $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; 
        $mail->AddAddress("$email");
        $mail->AddBCC("$bcc");
        $mail->Subject = "$subject";
        $mail->MsgHTML($message);
        $mail->Send();
        $mail->ClearBCCs();
        $mail->ClearAddresses();
        if(!$mail->Send()) {
            header('Location: fejl.php');
        } else { 
            header('Location: succes.php');
        }

    } catch (phpmailerException $e) {
      echo $e->errorMessage(); //Pretty error messages from PHPMailer
    } catch (Exception $e) {
      echo $e->getMessage(); //Boring error messages from anything else!
    }
} // end of if !mail

else { //report the errors
    echo 'TEST ERRORS';
    foreach ($errors as $msg) { //prints each error
        echo " - $msg<br />\n";;
    } // end of foreach
    echo 'End';
} //end of if(empty($errors)) 

1 个答案:

答案 0 :(得分:0)

基本错误:

    $mail->Send();
    $mail->ClearBCCs();
    $mail->ClearAddresses();
    if(!$mail->Send()) {

您正在调用send(),删除所有地址,然后再次调用send(),因此错误。

您还将代码基于旧的,过时的示例,因此您可能正在运行旧版本的PHPMailer。 Get the latest