PhpMailer-无法向大量订户发送新闻稿

PhpMailer-无法向大量订户发送新闻稿,php,email,send,phpmailer,newsletter,Php,Email,Send,Phpmailer,Newsletter,我这里有个大问题! 我需要向所有订户发送一份时事通讯(大约1200份) 问题是,它只向其中150-180人发送新闻稿。 我有一个用php实现的脚本,它使用PhpMailer()类将新闻稿发送给所有订阅者 我在MailJet中购买了一个计划,允许我每月发送3万封电子邮件,因此我使用他们的SMTP主机发送时事通讯 这是我的剧本: $mail = new PHPMailer(); $body = $message; $body =

我这里有个大问题! 我需要向所有订户发送一份时事通讯(大约1200份) 问题是,它只向其中150-180人发送新闻稿。 我有一个用php实现的脚本,它使用PhpMailer()类将新闻稿发送给所有订阅者

我在MailJet中购买了一个计划,允许我每月发送3万封电子邮件,因此我使用他们的SMTP主机发送时事通讯

这是我的剧本:

$mail             = new PHPMailer();
$body             = $message;
$body             = eregi_replace("[\]",'',$body);

$mail->IsSMTP();
$mail->SMTPAuth   = true;
$mail->Host       = "in.mailjet.com";
$mail->Port       = 80;
$mail->Username   = "username";
$mail->Password   = "password";

// thing regarding the body, subject, etc of the email //

$to_list = explode(',',$to);
$between_delay = 75; //max limit of mails send at a slot
$send_count = 1; 
$send_delay = 1; //Delays the program execution for the given number of seconds.

ignore_user_abort(true); // Ignore user aborts and allow the script to run forever
set_time_limit(300); //to prevent the script from dying

foreach($to_list as $row){
    if ( ($send_count % $between_delay) == 0 ){
        sleep( $send_delay ); //Delays the program execution for the given number of seconds.
    }
    $address = $row;
    if(!empty($address)) {
        $mail->AddAddress($address, "User");
        $mail->Send();
        $mail->ClearAddresses(); //clear address
   }
   $send_count++;
}

if(!empty($mail->ErrorInfo)) {
     // display an error
}
我真的不知道可能是什么问题,但出于某种原因,它停止发送电子邮件后,数字约180。
可能是关于设置时间限制(300)的问题??

我不建议将新闻稿的副本发送到每个单独的电子邮件地址;它会浪费带宽,并强制脚本发送消息的多个副本

请考虑使用SMTP服务器的盲拷贝(BCC)功能来发送大量电子邮件。这将允许您的SMTP服务器优化新闻稿的传递,并将节省您的带宽

快速查找PHPMailer API可以使用
$mailer->AddBCC()
函数添加BCc地址。例如,
$php\u mailer->AddBCC('somebody@example.com“,“乔某人”)应该可以工作。

为了更新这篇文章,现在有了一个易于使用的PHP包装器,可以在我们新的RESTAPI上发送电子邮件和执行任何请求


你可以在Github和完整的文档中找到它。

如果你认为这就是问题所在,为什么不使用
设置时间限制(0)
呢?问题是,我对phpmailer很新,我遵循了一个教程,它说要设置时间限制。。。我想这可能与此有关!你认为这可能是问题所在吗?将时间限制设置为0将使脚本永远运行,对吗?谢谢,我不是专家,但如果这是约束,那就是约束。这里有很多关于绕过时间限制的问题,以及使用了哪些php.ini设置。我认为这与您的邮件功能无关,而是与您的php设置有关。如果花费的时间太长,您就必须停止函数,以避免使用太多的资源(我假设)。如果你想让它继续下去,你必须做出改变(假设时间限制是个问题)。是的,我同意你!我发布这个问题的主要原因是,在浪费更多的钱发送浪费的电子邮件之前,我想提出一些建议。我听到了!我可能会重新措辞这个问题,以征求关于如何设置时间限制的建议,而不是“php邮件程序有什么问题”(这是我从问题中收集到的……我可能错了……)我不知道!对不起,我是PhpMailer()的新手。如何实施Bcc?谢谢你,你不需要实施任何事情。只需像普通邮件一样创建一封电子邮件,将所有订阅者添加为
BCc
'd地址,并且(如果您的SMTP服务器或PHPMailer需要)向
地址添加一个虚拟的
。当您发送电子邮件时,SMTP服务器应该将邮件发送给每个收件人,而无需您做任何进一步的工作。太棒了!关于我遇到的主要问题。。。你认为超时可能是我没有向所有订户发送时事通讯的原因吗?我需要把它发送到1200个分站。。。现在,它只向180个用户发送了或多或少的信息=/根据您显示的代码,看起来您正在将新闻稿的每个副本一个接一个地发送给每个订户,直到每个订户都完成发送。当您通过180个订阅者时,您的脚本或SMTP服务器连接可能已超时。此外,请注意发送大量电子邮件:即使您的SMTP服务器发送邮件,也不意味着您的订阅者将收到邮件。