Эффективная реализация почтовой рассылки

virakochi

Устал
Эффективная реализация почтовой рассылки

Много перечитал топов на эту тему, но общих ответов не нашел.

Суть задачи такова: есть ресурс, в перспективе с большим количеством посетителей. Необходимо организовать рассылку зарегистрированным пользователям.

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

В итоге, пользователь получает список документов, которые попали в срез для его установок рассылки, за определенный период времени.

Теперь, собственно, вопросы.
1. Стоит ли объединять рассылку в один скрипт, либо выгоднее для каждого типа пользователей свой?
2. Инфа обо всем лежит в БД. Что лучше - на каждом шаге рассылки брать с нуля данные, оформлять их и отправлять, помеечая выполненное; либо, возможно, заранее готовить каждому пользователю его письмо (организовать некую очередь писем. Быть может, готовить письма частично..)?
3. (наверное самый глупый вопрос) Отсылать через sendmail?
4. Наверняка я еще что-то упустил.
 

_RVK_

Новичок
>1. Стоит ли объединять рассылку в один скрипт, либо выгоднее для каждого типа пользователей свой?

А есть причина разделять? А завтра у тебя еще один тип появится, для него отдельно скрипт писать будешь?

>2. Инфа обо всем лежит в БД. Что лучше - на каждом шаге рассылки брать с нуля данные, оформлять их и отправлять, помеечая выполненное; либо, возможно, заранее готовить каждому пользователю его письмо (организовать некую очередь писем. Быть может, готовить письма частично..)?

Совершенно непонятный вопрос. что значит "брать с нуля" или "готовить письма частично"....

3. (наверное самый глупый вопрос) Отсылать через sendmail?

(Наверное глупый ответ) А почему не через Postfix?

4. Наверняка я еще что-то упустил.

Да, ты упустил код. Т.е. начни сначала писать. Создай базу, разберись как у тебя будет указываться тип, как будут выбираться документы в зависимости от типа, как это буде храниться в БД. И вот когда дайдешь до своего вопроса, тогда его и задавай, если он у тебя еще останется к тому времени.
 

virakochi

Устал
База давно спроректирована, все прекрасно хранится и выбирается. Меня интересует именно организация процесса рассылки.

Совершенно непонятный вопрос. что значит "брать с нуля" или "готовить письма частично"....
Опишу примерно "брать с нуля":
Скрипт для каждого пользователя выполняет запрос -> выбираются необходимые данные -> формируется письмо -> отсылается

Иначе, можно было бы, сначала подготовить для каждого пользователя список его документов, или еще что-то в этом роде. Таким образом, рассылку провести можно бы быстрее.
 

:::Nil:::

Guest
Я бы сделал просто:

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

virakochi

Устал
:::Nil:::
Да, но разве на действие скриптов, запущенных не под апачем не распространяется действие max_execution_time? И если у меня 3000 пользователей, каждому письмецо килобайт по 40?
 

_RVK_

Новичок
Ну я опять ничего не понял. Такое чувство что ты говоришь одно и то же, но разными словами. Или ты имеешь ввиду что второе это то же самое что и первое, только письма отсылаются не сразу, а потом. ИМХО, принципиальной разницы нет. Да и скорость здесь не играет особой роли, т.к. скрипт рассылки, должен запускаться кроном, и работать в фоне.
 

virakochi

Устал
Diesel
Ну елки. думаю, тем кто отвечает на этот топ понятно что я рыссылку не из броузера запускать буду.
 

_RVK_

Новичок
.htaccess, и вообще, если бы да кабы, во рту выросли грибы...
 

virakochi

Устал
.htaccess, и вообще, если бы да кабы, во рту выросли грибы...
Конечно, оно так, но хочется сделать свои скрипты максимально работоспособными, и чтоб при переносе с хостинга на хостинг их не надо было переписывать.
 

_RVK_

Новичок
virakochi
Ты не добьешься этого, если будешь отсылать письма "потом".
 

:::Nil:::

Guest
Я бы написал на C++ бинарник который бы слал, а скриптом бы передавал ему нужные параметры.... Хтоя хз... это так навскидку... Тут надо подумать хорошенько...
 

virakochi

Устал
Ладно. Спасибо. Насколько я понял, я придумал себе слишком много проблем.
 

graciano

Guest
неплохо бы после каждых 5-10 писем делать паузу секунд в 10, чтобы хостера не нервировать. Раз письма такие большие.
и в заголовке Return-path прописать ящик, куда будет складываться недоставленная почта.
 
Сверху