2009-08-14 2 views
1

У меня есть cron, который генерирует всю почтовую информацию и помещает в таблицу базы данных с помощью $mail_queue->put(.....) с возможностью удаления электронных писем после их отправки.Лучший способ отправить 10 000+ писем с PEAR/Mail_Queue

Здесь я хочу немного помочь: как лучше всего отправить электронные письма после того, как у меня есть вышеуказанная информация? Запуск $mail_queue->sendMailsInQueue() сразу, используя другие задания (или) cron или что-то еще?

Ограничение по серверу составляет 100 сообщений в минуту. В настоящее время последний csv diff для Mail_Queue не применяется (в настоящее время работает с поддержкой), поэтому я не могу использовать опцию «delay».

У меня была идея использовать опцию $seconds_to_send, но она рассчитана на основе поля create_time, что не очень помогает, но это также вариант.

Любые идеи и предложения были бы действительно оценены.

+3

Это для спама людей? – kokos

+2

@Kokos: Есть много законных причин для массовой электронной почты. Если он пишет новую почтовую систему с нуля, вместо того, чтобы использовать один из многих, доступных системных спамеров, которые уже используют, я бы поставил хорошие деньги, чтобы они служили разумной бизнес-цели. –

+0

Нет - нам нужна эта система, чтобы лучше обрабатывать пользовательские информационные бюллетени, оповещения и регистрационные письма – RRStoyanov

ответ

3

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

Что касается задержки, просто запустите услугу/cronjob забрать каждую минуту каждые шестьдесят секунд, поп-100 писем и отправьте их, а затем закройте. Вы можете получить очередь писем, которые будут отправлены, но это произойдет независимо от того, какую систему вы выберете. Так или иначе, очередь будет опустошаться в нерабочие часы.

+0

Да, очередь хорошая, но если вся ваша сеть отключена в течение нескольких часов, и вы все еще нажимаете на электронную почту в очередь, ваш почтовый сервер будет в беде (100/мин в порядке, но это sloooooow для любой * массовый * рассылка - 50K электронная почта займет полдня). Да, дисковое пространство дешево - подобный инцидент научил нас, что 300 ГБ свободного места просто недостаточно. Другими словами, если вы в яме, прекратите копать! Вы тот, кто отправляет письма, это не то, что они идут куда угодно, пока вы в автономном режиме. – Piskvor

0

Почему вы не звоните через 100 писем и не спать 60 секунд. это стоит вам не servertime, единственный недостаток вашего скрипта работает немного дольше.

2

использовать два сценария. один для заполнения вашей таблицы mail_queue электронными письмами, которые вам нужно отправить, и вторым скриптом для отправки этих писем в кусках 90 писем в пути. установите второй скрипт каждые две минуты.

Вы также можете просто обновить свой хостинг-план ;-)