6
$this->load->model('emailmodel');
$query = $this->emailmodel->get_emails();
$emails = array();
set_time_limit(0);

foreach($query->result() as $u)
{
    $this->notification->send($u->to, $this->config->item('neworder'),'orders/mail/subscription', 
        array(
            'order' => $neworder,
            'user' => $user
        ));
    break;
}

そのため、購読しているユーザーごとにループでメールを送信していますが、エラーが発生します:

Could not execute mail delivery program '/usr/sbin/sendmail -t -i '

これを修正するには?

4

5 に答える 5

2

同じ問題がありました。システムのセキュリティ制限 (ulimit) を確認してください

ulimit -aを実行できます

bash# ulimit -a

...
ファイルを開く (-n) 1024
最大ユーザー プロセス数 (-u) 1024
...

これは RedHat の/etc/security/limits.confで変更できます 。nproc と nofile をより大きな値に変更しました。

各 mail() 呼び出しはポート (ファイル) を開くためです。Filelimit に達すると、このエラー メッセージが表示されます。

于 2014-02-25T14:33:07.890 に答える
0

私の場合、サイトは MediaTemple でホストされており、PHP バージョンのように見えました。このサイトは 5.3 FastCGI で実行されていましたが、5.3 CGI に切り替えると問題なく動作しました。

于 2015-11-24T06:46:47.880 に答える
0

また、この奇妙なエラーが突然表示されました。私たちの場合、php-fpmを再起動すると問題が解決しました。ファイルの最大数、またはその他のメモリ リーク タイプの問題が原因である可能性があります。これが再び起こらないようにするために、pm.max_requests = 200 を有効にして、php-fpm プロセスがより頻繁に繰り返されるようにしました。

于 2014-09-18T13:35:15.470 に答える