29.11.2017 06:35:28 am
Появилась необходимость написать сценарий массовой рассылки писем. Надо учитывать факт: при большом количестве отправки писем, к источнику рассылки писем могут отнестись, как к спамеру, по этому отправлять письма надо не всей кучей сразу, а частями, скажем по 15 - 20 писем, через цикл.
Есть вариант использовать функцию sleep() (подробно о функции:
https://secure.php.n ... ction.sleep.php), но на обычном хостинге, при большом количестве получателей, есть вероятность получить 504 ошибку.
Порывшись в интернете и своих мозгах пришел к выводу, что лучшим решением для ограниченных серверов будет вариант с созданием временной таблицы. Получаем список всех почтовых адресов, которым надо отправить письмо и заносим их в временную таблицу. Дальше из временной таблицы получаем первые 15 - 20 получателей в массив и начинаем рассылку через цикл, а из временной таблицы удаляем полученных получателей. Через, скажем 10 секунд повторяем - получаем 15 - 20 получателей и отправляем им письма, а записи из временной таблицы удаляем. Так продолжается до тех пор, пока временная таблица не станет пустой.
Запускать сценарий выборки из временной таблицы и рассылки, можно при помощи крона.
Есть вариант использовать функцию sleep() (подробно о функции:
https://secure.php.n ... ction.sleep.php), но на обычном хостинге, при большом количестве получателей, есть вероятность получить 504 ошибку.
Порывшись в интернете и своих мозгах пришел к выводу, что лучшим решением для ограниченных серверов будет вариант с созданием временной таблицы. Получаем список всех почтовых адресов, которым надо отправить письмо и заносим их в временную таблицу. Дальше из временной таблицы получаем первые 15 - 20 получателей в массив и начинаем рассылку через цикл, а из временной таблицы удаляем полученных получателей. Через, скажем 10 секунд повторяем - получаем 15 - 20 получателей и отправляем им письма, а записи из временной таблицы удаляем. Так продолжается до тех пор, пока временная таблица не станет пустой.
Запускать сценарий выборки из временной таблицы и рассылки, можно при помощи крона.
- Жалоба