Какие подводные камни при отправке писем более 1000 адресатам с помощью php функции mail()?

Предвидя вопросы - нет, не спам. Требуется произвести рассылку новостей зарегистрированным пользователям сайта. Ранее такого опыта не было, поэтому интересует:
1) как долго будет отрабатывать mail() в цикле скажем по 1000 адресам? стоит ли выносить в фоновую задачу?
2) не поперхнется ли кто-то из серверов по пути следования? не расценят ли такую активность как спам? может стоит порциями по 10-20 штук отправлять с перерывами между ними? просто видел как от серьезных контор приходили важные мыла с пометкой "спам", не хотелось бы чтобы наш сервер определялся так же.

1 ответов


> как долго будет отрабатывать mail() в цикле скажем по 1000 адресам? стоит ли выносить в фоновую задачу?
Зависит от размера письма, если адресатов больше 400 или большое письмо (вложение) то обязательно в фон.

> не поперхнется ли кто-то из серверов по пути следования?
Делаем постоянную рассылку ~ 400 адресатам. И примерно у 2-5% какие-то проблемы (письмо возвращается с ошибкой mail delivery failed: то ящик переполнен, то еще что-то).


Первое, что вам необходимо сделать - составить очередь сообщений.
Второе, что вам, необходимо сделать - написать бота, который будет эти сообщения рассылать.
Третье, что вам необходимо сделать - организовать рассылку сообщений таким образом, чтобы контент писем хоть немного отличался (например хотя бы личным сообщением), при этом указав только одного адресата в поле to.

Подводные камни:
Ограничение хостера на отправку писем/час.
Если в письме упоминается множество ссылок - возрастает вероятность попадания в спам.

Совет:
Пользоваться специальными сервисами рассылок - обычно они имеют свой API, a услуги их стоят копейки (или вовсе можно обойтись бесплатным пакетом). Обсуждалось не так давно.


У меня почти так же, отправляет по 5-10 мейлов в минуту. Предотвратить попадание в спам так же можно указывая помимо html типа - plain/text. (вероятность, что Postfix закинет мыло в спам намного меньше становиться)


У нас есть рассылка. Содержание для каждого клиента разное. Работает так:
крон запускает shell-скрипт переодический, который в свою очередь запускает php скрипт. В скрипте проверяется нужно ли отправить отправить письма и для каждого клиента отдельно генерирует и отправляет.

Со спам фильтрами проблем нет. Они ориентируются по самому письму и ничего не знают о том как его отправили. Избегайте нескольких адрессов в "кому" - такие часто попадают. Лучше указывать каждого клиента отдельно.

Это опыт того с чем я сталкивался. Этот модуль писали до меня, но вроде основное изложил.