无法使用php邮件功能一次向200多个成员发送邮件

时间:2010-12-03 05:15:29

标签: php email

大家好我正在使用php邮件功能来发送我的邮件如果我在本地运行5个电子邮件ID的代码然后它工作正常没有任何错误但如果我运行相同的代码超过400电子邮件ID然后它显示警告消息链接

Warning: mail() [function.mail]: Could not execute mail delivery program '/usr/sbin/sendmail -t -i' in /home/sendInvite.php on line 147 

我正在使用此代码:

$sqlquery1 = "select employee from empl where sstatus != 'C'";
 $sqlmath1 = mysql_query($sqlquery1) or die("Error: (" . mysql_errno() . ") " . mysql_error());
     $cnt = mysql_num_rows($sqlmath1);
     if($cnt !="0") {
     while($query1 = mysql_fetch_array($sqlmath1))
     {
    $email1=$query1['employee'];  
    $emid1=base64_encode($email1);
    $sid1 =base64_encode($sidtest);
    $email_from1 = "admin@gmail.com";
     $link1="http://www.xx.php?mid=$emid1&sid=$sid1";
    //send mail
    $emailto_web1     = $email1;
    $email_headers1   = "From: ".$email_from1;
    num_sent_web1    = 0;
    $email_message21  = "Dear Employee, \n";
    $email_message21 .= "\n";
    $email_message21 .= "If you cannot click on the URL, copy the URL and paste it on your address bar.\n";
    $email_message21 .= "\n";
    $email_message21 .= $link1."\n";
    $email_message21 .= "\n\n\n";
    $email_message21 .= "Regards,\n";
    $email_message21 .= "Admin Team. \n";

    $mail_web1 = mail($emailto_web1,$email_subject1,$email_message21,$email_headers1);
    if($mail_web1)
        {    $err = "Remainder Send Successfully";
                }
                else 
                    {  $err=$email." Try Again";
                        } 
      }  
      } // not equal to zero condition

我不知道收到此警告消息的确切原因,请发布您的重要建议。提前致谢 !!!

4 个答案:

答案 0 :(得分:3)

为此使用cron作业并以块的形式发送邮件,而不是一次发送所有邮件。

答案 1 :(得分:0)

请参阅php邮件功能文档:

值得注意的是,mail()函数不适合循环中的大量电子邮件。此功能为每封电子邮件打开和关闭SMTP套接字,效率不高。  要发送大量电子邮件,请参阅»PEAR :: Mail和»PEAR :: Mail_Queue包。

另外,请参阅serverfault上的相关问题:https://serverfault.com/questions/67154/sending-an-email-to-about-10k-users-not-spam,其中提到了PHPlist,以及其他问题。在这里 - https://serverfault.com/questions/68357/whats-the-best-way-to-send-bulk-email,https://stackoverflow.com/questions/1543153/is-there-a-limit-when-using-php-mail-function

答案 2 :(得分:0)

我认为您的脚本没有问题,但是操作系统或发送邮件程序的安装问题很难配置或者可能丢失。尝试所有可能性,从PHP方面它没关系。

答案 3 :(得分:0)

您最好的选择是使用cron作业。这样做,你的服务器会有很大的压力。 mail()函数不适用于大量电子邮件。如果您使用大量数据,它将减慢您的服务器。

This将解释如何在服务器上创建一个cron作业。

希望它有所帮助!