Автоматизированный список рассылки - PHP - PullRequest
2 голосов
/ 19 февраля 2009

У меня есть приложение на моем сайте, где люди могут подписаться на получение информационных бюллетеней, а затем кто-то в платной группе может написать и отправить его сразу всем подписавшимся ...

... это означает, что мне нужен эффективный способ перебрать мою базу данных подписчиков и отправить им копии электронной почты, используя php.

ясно, есть функция mail () .... я мог бы поместить это в цикл ... есть ли лучший способ?

Ответы [ 5 ]

3 голосов
/ 19 февраля 2009

Вы можете использовать опцию заголовка BCC и отправить одно электронное письмо со списком слепых копий всех подписчиков. Поэтому создайте строку BCC в цикле и отправьте одно письмо с помощью mail ()

Фрагмент из руководства по PHP ...

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);

Заменить "Bcc: birthdaycheck@example.com" на $ mySubscribeersList

3 голосов
/ 19 февраля 2009

PEAR в почтовой очереди ?

Класс Mail_Queue помещает письма в временный контейнер, ожидающий кормления в MTA (почтовый транспортный агент) и отправляет их позже (например, определенный количество писем каждые несколько минут) crontab или другим способом.

1 голос
/ 19 февраля 2009

После ответа @ paulbm, почему бы не создать псевдоним на вашем сервере, который указывает на все текущие адреса электронной почты? Короткий сценарий procmail может запретить использовать псевдоним любому лицу, кроме одного авторизованного отправителя.

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

1 голос
/ 19 февраля 2009

Я бы предложил найти способ перебрать и вспомнить, кому вы уже отправили, потому что если он станет большим списком людей, ваш сценарий может закончиться, и вам придется его перезагрузить.

Я сделал это однажды, используя AJAX, дал мне отличный способ отследить, где я находился в процессе отправки. Подсчитал, сколько людей отправляет почту, помещает идентификаторы в массив, имеет цикл javascript и делает отдельные вызовы на php-mail-страницу ...

-edit- У вас может быть скрипт на php с простым циклом while, но тогда вам нужно добавить проверку в БД, чтобы посмотреть, было ли письмо уже отправлено одному человеку. Если сценарий превышает использование памяти, просто перезагрузите страницу, и она будет отправлена ​​только тем, кто еще не получил ее ...

0 голосов
/ 19 февраля 2009

Попробуйте phplist ( Домашняя страница ), если вам нужен полнофункциональный менеджер рассылок и рассылок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...