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


PhPMailer - You must provide at least one recipient email address - But sending mails anyway

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

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

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

我已经尝试了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)) 

基本错误:

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

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

你的代码也基于一个旧的,过时的例子,所以你可能运行的是旧版本的PHPMailer。获取最新信息。

相关文章: