СПАМ БЕЗ КОНЦА: двигло портальной рассылки. cuttah & donor Спецвыпуск Xakep, номер #028, стр. 028-064-1 Снова ты! Когда же ты, наконец, станешь большим и умным, и я буду ходить к тебе и задавать тупые вопросы! В смысле, привет :). Скажи, тебя сильно задолбал разный спам, например, с предложением купить третью турбину Верхоянской ГЭС? Ну, правильно, тебя же не колышит, что челу нужно продать турбину! Но если ты решил стать владельцем портала, то скоро ты сам станешь первостатейным спамером. Тебе же нужно будет рассылать рекламу твоей мега-кул паги, а потом ты убедишь вислоухих юзверей подписаться на новости (анекдоты, порно белочек и т.д.) и будешь настойчиво напоминать о себе свежим спамом. Конечно, можно зарегить рассылку у subscribe.ru, но откуда ты знаешь, что там происходит, когда твой юзерок подписывается у тебя (может, кто-то этим пользуется), да и дизигн портить не хочется. Да и просто, админить рассылку самому - клево! РАССЫЛКА ПОД СКАЛЬПЕЛЕМ Итак, что такое рассылка? Рассылка - это, прежде всего, база адресов юзеров и скрипт, который автоматически рассылает этим юзверям спам, то есть я хотел сказать, новости, информацию и прочую полезную пургу :). Естественно, жертвы... э-э-э... абоненты должны добавляться автоматически - не будешь же ты переписывать тысяч десять адресов ручками. Конечно же, юзеры должны иметь возможность отписаться от надоедливого хрена с турбинами (ну, это они думают, что отписываются, на самом деле они, наоборот, сообщают о своей активности, и спам валит с удвоенной силой), ну, или поменять инфу о себе или запросить раздолбайски утерянный пароль. Еще юзер может выбрать, в каком виде ему присылать мессаги: в экономном тексте или шикарном html. Двигло рассылки на каждое из таких событий должно уметь отреагировать какой-то мессагой, чтобы юзверь не почувствовал себя одиноким и забытым. И нельзя забывать про админскую часть движка, иначе какое же тут веселье? Админская часть должна помочь сварганить мессагу (забить поля "от кого" и "тема", принять тело письма), а также сделать некоторые настройки текущей спам-сессии. ПОИНЖЕНЕРИМ Каждая часть спам-двигла логично сделать отдельным модулем и связать их друг с другом инклудами. Так и работать удобнее и безопаснее. Данные хорошо бы, конечно, хранить в SQL базе, но не у всех и не всегда такая роскошь есть, поэтому предлагаю хранить данные о юзерах в отдельных текстовых файлах. Имя файла - это адрес мыла юзверя. Формат файла такой: на первой строчке - пароль, на второй строчке - ник, на третьей - тип рассылки (text/html). В текстовиках также будем хранить шаблоны для будущих системных мессаг юзеру. ДВИЖОК НА ТРЯПОЧКЕ maillist.cgi - это у нас основной скрипт, к которому будут цепляться все остальные детали движка. В нем мы выясняем, во-первых, кто к нам завалился: админ или юзер, а во-вторых, чего он хочет. Админ может хотеть начать рассылку, а юзер подписаться, изменить инфу, попросить затерянный пароль или отписаться. В зависимости от выбора главный скрипт вызовет соответствующую процедуру. Обрати внимание, тут же я добавил проверку корректности введенного е-мыла, а также защитился от всяких "нехороших" символов, которые могут ввести разные желтопузые хитрожопики. |