Какие подводные камни при отправке писем более 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 скрипт. В скрипте проверяется нужно ли отправить отправить письма и для каждого клиента отдельно генерирует и отправляет.
Со спам фильтрами проблем нет. Они ориентируются по самому письму и ничего не знают о том как его отправили. Избегайте нескольких адрессов в "кому" - такие часто попадают. Лучше указывать каждого клиента отдельно.
Это опыт того с чем я сталкивался. Этот модуль писали до меня, но вроде основное изложил.