Понадобилось внедрить в проект на CodeIgniter функцию отправки сообщений всем зарегистрированным пользователям. Отправка через SMTP работает без проблем для уведомлений на 1-2-3 ящика. Но если нужно сделать рассылку на 50+ адресов то появляются ошибки.
1) Message: fwrite(): SSL: Broken pipe
2) переодически Gateway Time-out
Кусок кода:
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.mail.ru';
$config['smtp_port'] = '465';
$config['smtp_user'] = 'username';
$config['smtp_pass'] = '123456789';
$config['charset'] = 'utf-8';
$config['newline'] = "\r\n";
$config['crlf'] = "\r\n";
$config['mailtype'] = 'html';
$config['bcc_batch_mode'] = true;
$config['bcc_batch_size'] = 200;
$config['validate'] = true;
//в массиве $results - храняться 50+ email адресов
//в цикле отправляем письмо на каждый ящик
foreach ($results as $key => $result) {
$this->email->clear();
$this->email->initialize($config);
$this->email->from('info@mysite.com', 'MYNAME');
$this->email->to($result);
$this->email->subject('Тема письма');
$this->email->message('А тут сообщение');
$this->email->send();
}
Использую почту на домене Mail.ru SPF-запись настроена