#php #email #newsletter
#php #Адрес электронной почты #Рассылка
Вопрос:
Допустим, у меня в базе данных 200 пользователей, и в настоящее время я размещаюсь на общем хостинге. Я хочу отправлять им новостную рассылку и отправлять только 10 электронных писем каждые 5 минут.
Я буду отправлять новостную рассылку с помощью phpmailer. Вопросы..
- Какова хорошая концепция отправки информационного бюллетеня с использованием существующей базы данных без экспорта в сторонние сервисы?
- Что является ключом к тому, чтобы скрипт не отправлял дублирующуюся рассылку в одно и то же время?
- Какова хорошая практика для достижения моей цели.
Дайте мне знать
Ответ №1:
Вы должны просто использовать сторонний сервис 3d с хорошим API. В долгосрочной перспективе это потребует гораздо меньше работы.
Вы не задумывались об обработке отказов, отмене подписки, ключах домена, избежании черных списков и многом другом.
В лучшем случае ваши сообщения попадут в ящик нежелательной почты.
В худшем случае ваш IP будет забанен, а ваша учетная запись удалена за отправку нежелательной электронной почты (вашему провайдеру будет все равно, подписались ли они на это на самом деле).
Комментарии:
1. Я согласен, но для базы данных всего из 200 пользователей? Я бы просто выбрал дешевое и легкое на данный момент и расширил бы его, если понадобится позже….
2. Не существует дешевой и простой для ручной реализации информационных бюллетеней imo. 1 за использование готовых решений.
3. Если я перейду на выделенный сервер, проблема будет такой же?
4. Если я экспортирую текущее электронное письмо в третью службу, такую как Aweber, пользователь должен снова подтвердить свой адрес электронной почты..
5. Вы всегда должны реалистично оценивать, забиваете ли вы гвоздь кувалдой. Если это простое электронное письмо в формате обычного текста / basic html, рассылаемое еженедельно примерно 200 пользователям — нет реальной необходимости интегрироваться с API (только сейчас). Лучше закодировать быстрое и неприятное решение и выполнить работу на данный момент. Однако, как только пользовательская база / частота увеличится, настанет время подумать об использовании стороннего устройства.
Ответ №2:
Настройте задачу для выбора фиксированного количества неотправленных информационных бюллетеней из базы данных (я бы либо удалил отправленные информационные бюллетени, либо пометил их как отправленные, либо переместил их в другую таблицу). В вашем случае вы, очевидно, хотите отправлять 10 писем каждые 5 минут, поэтому поставьте задачу получать 10 электронных писем и отправлять их. Затем настройте cron и запускайте его каждые пять минут… Возможно, есть более элегантное решение, хотя, если вы планируете отправлять электронные письма только один / два раза в неделю. Вы могли бы выполнить несколько циклов while с помощью команды sleep, но это не особенно экономно с точки зрения ресурсов…. Я бы просто воспользовался приведенным выше — это, вероятно, самое гибкое решение методом перебора, и ваш хост ничего не заметит, поскольку это все равно будет относительно быстро.