Добрый день. Имеется следующая проблема:
Скрипт рассылает email сообщения по базе адресов. Пока база была маленькая проблем не было. После того как количество подписчиков перевалило за 2000 тыс. начались проблемы.
Warning: mail() [function.mail]: Could not execute mail delivery program '/usr/sbin/sendmail -t -i ' in
Методом научного тыка установлено, что проблема в лимите памяти для php. На другом сервере подняв лимит памяти проблему решили, 4500 тыс писем улетает без проблем. На этом сервере поднять лимит не представляется возможным.
Функция в которой происходит затык выглядит так:
function sendNewsletterMail ($emails,$emailFrom,$html,$subject) {
foreach ($emails as $id => $datas) {
$email = $datas['val'];
............
............
............
$result=mail($email, "=?utf-8?B?".base64_encode($subject." - ".$i)."?=" ,'', $headers);
}
return $result;
}
Несущественное вырезал. В $emails массив с адресами. Где то в районе двухтысячного письма все это дело упирается в лимит памяти и выдает приведенную ошибку.
Какие могут быть варианты решения. Смена хостинга пока невозможна. Спасибо.