Моя база данных содержит более 20 000провереноemail-адреса. Это адреса электронной почты пользователей с разрешением (пользователи устанавливают параметры) получать информационные бюллетени, обновления и т. д. с веб-сайта. На самом деле я никогда не использовал их адреса электронной почты для каких-либо целей, но теперь я хочу, чтобы пользователи периодически получали обновления с веб-сайта (раз в месяц или два месяца). Меня больше интересует, как отправить одно и то же письмо 20 тыс. пользователей как можно быстрее и с какими ограничениями я могу столкнуться при этом?
У меня есть несколько идей, как это сделать с помощью Cron и встроенной функции PHP mail(), но я не могу отправить 20 тыс. писем за раз (можно?). Кроме того, я знаю, что письма, скорее всего, попадут в папку «мусор/корзина/спам» у получателя (это нормально), но не уверен, есть ли какой-то закон против массовой рассылки писем или ограничения (определяемые хостинг-провайдером).
Мне нужен ответ, как это сделать и как лучше всего выполнить эту задачу? Это не вопрос "дайте мне решение", просто нужны советы, потому что я никогда в жизни не отправлял больше 5 писем одновременно и не смог найти ответ на этот вопрос. Интересно, как крупные сервисы, такие как Facebook, Twitter, Youtube, информируют своих пользователей (вероятно, миллионы из них одновременно)?
Примечание: Извините, если я задаю вопрос не там, где нужно. Я долго думал, где его разместить — здесь или на StackOverflow, но, судя по тому, как выглядит моя проблема (я не предоставляю и не запрашиваю код), полагаю, что на SO его закроют как «неконструктивный» или даже «не по теме».
решение1
При отправке всех этих писем сразу или по одному вы столкнетесь с несколькими проблемами.
БЛОКИРОВЩИКИ СПАМА
Чтобы отправить столько писем, вам нужно настроить SPF, возможно, какой-то сертификат подписи, использовать сервер со статическим IP, желательно с обратным DNS. Когда вы начинаете становиться еще больше, вам нужно связаться с некоторыми почтмейстерами напрямую, чтобы вас внесли в белый список, предоставив законные причины и документы. Мы отправляли около 250 тысяч писем в день, иногда 4 раза в месяц нашим подписчикам.
Мы написали свою собственную программу, но существует множество других.
Также вы можете просто зациклить каждое письмо и отправлять его по одному, а затем попытаться объединить его в цепочку, в конечном итоге разбив на домены, и, возможно, вы сможете отправить их все примерно за 1 час с помощью грамотного программирования.
Удачи
решение2
Короткий ответ: сделайте статический IP и обратный DNS. Вы можете, но не отправляйте их в течение одного часа. Почтовые серверы не любят тысячи писем за короткое время, вы будете заблокированы. Я бы сказал, даже больше, если вся эта почта приходит с почтового сервера, который только что появился в сети.
Длинный ответ: я отправляю 2000 писем раз в неделю. Я использую программу на php для их отправки, это бесплатное программное обеспечение, я не знаю, могу ли я назвать ее здесь, поэтому не буду. Веб-сайт оранжевый, он на php для управления списками (рассылками). Мой сервер - 1 ГБ оперативной памяти xeon 2.4GHZ 4 ядра с Debian, он отправляет 4 письма в секунду (около 100 КБ каждое) с postfix (вся исходящая почта проверяется на вирусы), так что это должно быть 14 000 в час. Если вы отправляете слишком много писем на один домен, некоторые из них могут иметь функцию блокировки. У Yahoo было/есть что-то вроде серых списков, я помню, что мне приходилось связываться с ними не один раз в течение 3 месяцев, пока они не прекратили временные отклонения. Мой интернет-провайдер отклоняет почту, если видит слишком много подключений за короткое время, поэтому в Postfix я уменьшил количество подключений, кажется, с 20 до 10. Кстати, Gmail отправляет 5000 писем в секунду, я слышал об этом в debconf (10,11,12) от одного из разработчиков.