Рассылка почты по базе с миллионом пользователей

Димон

Новичок
Рассылка почты по базе с миллионом пользователей

Всем привет!

Для сайта, в котором зарегистрированы больше миллиона юзеров собираюсь делать возможность массовой рассылки (уведомления, новости и т.п.) по базе данных. У юзеров есть id, логин, почта и группа. Id, логин и e-mail юзеров не изменяются. Юзер может принадлежать только к одной группе. Рассылку надо будет делать как всем, так и по выбранной группе.

У меня возникают следующие вопросы:
1) Как максимально быстро делать выборку из базы при рассылке группам? Кеш, думаю, не подходит, т.к. юзеры могут часто блуждать между группами (специфика сайта), соответственно придется часто генерить кеш заново. Есть ли смысл продублировать данные юзеров в отдельных таблицах по группам, т.е. использовать "избыточность данных"?.
2) После того как выборка сделана и данные подготовлены какой почтовик лучше использовать? PHPmailer подойдет для массовой рассылки?

Мне просто не приходилось еще сталкиваться с такими большими системами. Здесь очень важны нюансы быстродействия.
У кого был опыт создания чего-нибудь подобного, поделитесь, плиз.
 
Пхп правит веб-миром :)

-~{}~ 20.08.09 16:06:

Согласен, вопрос, конечно, больше по архитектуре.
 
рассылки делают менеджерами рассылок, которые специально под это заточены.
 
при чем здесь архитектура?
рассылкой почты занимается почтовый сервер
 
Я кроном рассылал как-то. Беру по 50 адресов и шлю. Через пять минут еще.
 
И так, самым узким местом в рассылке является задержка при обращении к почтовому серверу. Значит нужно делать рассылку в несколько потоков. В пыхе можно запустить несколько потоков (эмуляция) через сокеты или pcntl. Под виндой можно через popen(). Но, поискав, нашел готовую тулзу для рассылки, написанную на питоне, работающую под юниксом.

Mailman: http://www.list.org/
 
Спамеров поощряете?
но почему сразу спамеров, у меня был проект: уведомление пользователей о новостях сайта... расслылка по полутору миллионов пользователей... Рассылал с помощью простого PHPMailer по 500 писем по крону, но как заметили выше - надо использовать для этих целей спец рассылочные сервера.
 
На e-xecutive.ru в свое время была ежедневная рассылка на сто тысяч адресов. Через почтовик на датафорте она вся уходила за полтора-два часа.

Так что ставь несколько почтовиков (можно на разных площадках), группируй юзеров по доменному имени почтового сервера (у нас из ста тысяч человек - пятнадцать тысяч были на mail.ru), и вперед.

Готовься, кстати, к тому, что твои почтовики, при всех подписаных юзерами соглашениях на получение рассылки, все равно будут попадать периодически в спам-листы.
 
Готовься, кстати, к тому, что твои почтовики, при всех подписаных юзерами соглашениях на получение рассылки, все равно будут попадать периодически в спам-листы.
да, надо такие вещи согласовать заранее с крупными почтовиками, чтоб не попасть в банлист. Было такое :(
у нас одна итерация рассылки шла часа полтора. Рассылалось все с одного специального для рассылки почтовика.
 
Каким образом кроном можно отправлять письма, по частям из всей базы, скажем 100 писем, нужно отправлять по 10. Напротив каждого email'а ставить дату последней рассылки?
 
О чем тут разговор? Все очень зависит от принимающего smtp сервера. Я например всегда проставляю лимит подключений 1/5 минут. Затачиваешь локальный релей и юзаешь mail - все остальное проблемы сисадмина. Если ближайший серв не справится, то удаленный тоже врядли.
 
Вы не поняли вопрос, как можно сделать так, чтобы первый раз рассылалось первые 10 писем, затем вторые 10 писем и т.д. Сразу 100 писем отсылать не хочется, потому что время работы скрипта слишком большое будет

-~{}~ 06.12.09 02:01:

И еще вопрос, где взять такой smtp сервер, который не будет блокировать ваш аккаунт из-за большой рассылки
 
magiq
учи программирование или найми прфессионала,
твои вопросы не из PHP, а логика уровня лабораторной ВУЗа
 
Автор оригинала: magiq
Вы не поняли вопрос, как можно сделать так, чтобы первый раз рассылалось первые 10 писем, затем вторые 10 писем и т.д. Сразу 100 писем отсылать не хочется, потому что время работы скрипта слишком большое будет
пишешь php скрипт который рассылает по N писем, а потом запускаешь через cron раз в пять минут

Автор оригинала: magiq
И еще вопрос, где взять такой smtp сервер, который не будет блокировать ваш аккаунт из-за большой рассылки
Нужно скорее всего сообщить провайдеру(или хостеру) о такой рассылке..
 
Сверху