douyuliu9527 2019-05-03 10:01
浏览 70

我在我的cron作业上遇到HTTP 500错误,而它在ci3中使用电子邮件类在循环上发送电子邮件

I have a cron job which sends email to subscribers, using CodeIgniter 3 email class. I have used smtp mail service provided by the host. The cron job gives HTTP 500 error after running for 2-3 mins and sending 453 emails. I have used sleep after sending 400 emails. There are no limits on how many emails the server can send Please review the code below.

    <?php $sn=1;$emailCount=0;
    $config = array(
          'protocol'  => 'smtp',
          'smtp_host' => 'smtp.something.com',
          'smtp_port' => 587,
          'smtp_user' => 'something@some.com',
          'smtp_pass' => 'somepass',
          'mailtype'  => 'html',
          'charset'   => 'utf-8',
          'smtp_crypto' => 'tls'
     );
     $this->email->initialize($config);
     log_message("info", "Email Cron job started");
     foreach($member as $row){ 

        $this->email->clear();
        $this->email->set_mailtype("html");
        $this->email->set_newline("
");
        $this->email->from('something@some.com','Sm');
        $this->email->subject($title);
        $this->email->set_header('Header1', 'MIME-Version: 2.5.6');
        $this->email->to(trim($row->email_address));

        ob_start();
        ?>
        <table  border="0" cellpadding="0" cellspacing="0" width="100%">
        <tbody>
        <tr><td height="15">&nbsp;</td></tr>
        <!-- many lines of code just html-->
        <tr><td height="15">&nbsp;</td></tr>
        </tbody>
        </table>
        <?php
        $message = ob_get_contents();
        ob_clean();
        ob_flush();
        $this->email->message($message);
        if($emailCount % 400 == 0 && $emailCount != 0)
        {
           sleep(15);
           log_message("info", "Sleep.Emails Sent: ".$emailCount); 
        }
        if($this->email->send())
        {
           $emailCount++;    
        }
        else
        {
           log_message("info", "Error! Total Emails Sent: ".$emailCount);
        }
        $sn++;
     } 
     log_message("info", "Total Emails Sent: ".$emailCount);
     log_message("info", "Total Loop Ran: ".$sn);?>  

Tried the sleep() but didn't work.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
    • ¥15 不小心不正规的开发公司导致不给我们y码,
    • ¥15 我的代码无法在vc++中运行呀,错误很多
    • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
    • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
    • ¥30 ppOCRLabel导出识别结果失败
    • ¥15 Centos7 / PETGEM
    • ¥15 csmar数据进行spss描述性统计分析
    • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
    • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题