СПАМ БЕЗ КОНЦА: двигло портальной рассылки.

cuttah & donor

Спецвыпуск Xakep, номер #028, стр. 028-064-1

Снова ты! Когда же ты, наконец, станешь большим и умным, и я буду ходить к тебе и задавать тупые вопросы! В смысле, привет :). Скажи, тебя сильно задолбал разный спам, например, с предложением купить третью турбину Верхоянской ГЭС? Ну, правильно, тебя же не колышит, что челу нужно продать турбину! Но если ты решил стать владельцем портала, то скоро ты сам станешь первостатейным спамером. Тебе же нужно будет рассылать рекламу твоей мега-кул паги, а потом ты убедишь вислоухих юзверей подписаться на новости (анекдоты, порно белочек и т.д.) и будешь настойчиво напоминать о себе свежим спамом. Конечно, можно зарегить рассылку у subscribe.ru, но откуда ты знаешь, что там происходит, когда твой юзерок подписывается у тебя (может, кто-то этим пользуется), да и дизигн портить не хочется. Да и просто, админить рассылку самому - клево!

РАССЫЛКА ПОД СКАЛЬПЕЛЕМ

Итак, что такое рассылка? Рассылка - это, прежде всего, база адресов юзеров и скрипт, который автоматически рассылает этим юзверям спам, то есть я хотел сказать, новости, информацию и прочую полезную пургу :). Естественно, жертвы... э-э-э... абоненты должны добавляться автоматически - не будешь же ты переписывать тысяч десять адресов ручками. Конечно же, юзеры должны иметь возможность отписаться от надоедливого хрена с турбинами (ну, это они думают, что отписываются, на самом деле они, наоборот, сообщают о своей активности, и спам валит с удвоенной силой), ну, или поменять инфу о себе или запросить раздолбайски утерянный пароль. Еще юзер может выбрать, в каком виде ему присылать мессаги: в экономном тексте или шикарном html. Двигло рассылки на каждое из таких событий должно уметь отреагировать какой-то мессагой, чтобы юзверь не почувствовал себя одиноким и забытым. И нельзя забывать про админскую часть движка, иначе какое же тут веселье? Админская часть должна помочь сварганить мессагу (забить поля "от кого" и "тема", принять тело письма), а также сделать некоторые настройки текущей спам-сессии.

ПОИНЖЕНЕРИМ

Каждая часть спам-двигла логично сделать отдельным модулем и связать их друг с другом инклудами. Так и работать удобнее и безопаснее. Данные хорошо бы, конечно, хранить в SQL базе, но не у всех и не всегда такая роскошь есть, поэтому предлагаю хранить данные о юзерах в отдельных текстовых файлах. Имя файла - это адрес мыла юзверя. Формат файла такой: на первой строчке - пароль, на второй строчке - ник, на третьей - тип рассылки (text/html). В текстовиках также будем хранить шаблоны для будущих системных мессаг юзеру.

ДВИЖОК НА ТРЯПОЧКЕ

maillist.cgi - это у нас основной скрипт, к которому будут цепляться все остальные детали движка. В нем мы выясняем, во-первых, кто к нам завалился: админ или юзер, а во-вторых, чего он хочет. Админ может хотеть начать рассылку, а юзер подписаться, изменить инфу, попросить затерянный пароль или отписаться. В зависимости от выбора главный скрипт вызовет соответствующую процедуру.

Обрати внимание, тут же я добавил проверку корректности введенного е-мыла, а также защитился от всяких "нехороших" символов, которые могут ввести разные желтопузые хитрожопики.

Содержание  Вперед на стр. 028-064-2
Выпуски журнала "СПЕЦ Xakep"
Cпец Хакер #01Cпец Хакер #02Cпец Хакер #03Cпец Хакер #04Cпец Хакер #05Cпец Хакер #06Cпец Хакер #07Cпец Хакер #08Cпец Хакер #09Cпец Хакер #10Cпец Хакер #11Cпец Хакер #12Cпец Хакер #13Cпец Хакер #14Cпец Хакер #15Cпец Хакер #16Cпец Хакер #17Cпец Хакер #18Cпец Хакер #19Cпец Хакер #20Cпец Хакер #21Cпец Хакер #22Cпец Хакер #23Cпец Хакер #24Cпец Хакер #25Cпец Хакер #26Cпец Хакер #27Cпец Хакер #28Cпец Хакер #29Cпец Хакер #30Cпец Хакер #31Cпец Хакер #32Cпец Хакер #33Cпец Хакер #34Cпец Хакер #35Cпец Хакер #36Cпец Хакер #37Cпец Хакер #38Cпец Хакер #39Cпец Хакер #40Cпец Хакер #41Cпец Хакер #42Cпец Хакер #43Cпец Хакер #44Cпец Хакер #45Cпец Хакер #46Cпец Хакер #47Cпец Хакер #48Cпец Хакер #49Cпец Хакер #50Cпец Хакер #51Cпец Хакер #52Cпец Хакер #53Cпец Хакер #54Cпец Хакер #55Cпец Хакер #56Cпец Хакер #57Cпец Хакер #58Cпец Хакер #59Cпец Хакер #60Cпец Хакер #61Cпец Хакер #62Cпец Хакер #63Cпец Хакер #64Cпец Хакер #65Cпец Хакер #66Cпец Хакер #67Cпец Хакер #68Cпец Хакер #69Cпец Хакер #70Cпец Хакер #71Cпец Хакер #72Cпец Хакер #73Cпец Хакер #74Cпец Хакер #75