Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #28, МАРТ 2003 г.

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

cuttah & donor

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


data.pl - это у нас настройки, если хочешь, окружения. Тут я раздаю переменным соответствующие значения: поле "откуда" будущего спама, почтовый клиент и путь к нему (скорее всего, это будет sendmail, и путь будет таким же), урла твоего портала для ссылки в теле письма, дальше прописываются директории для данных, для хранения временных пользователей и постоянных пользователей (их, скорее всего, менять не придется). Этот модуль будет подгружаться там, где он необходим.

func.pl - моя самопальная библиотечка для работы с файлами, массивами и строками. Довольно удобная. Я думаю, сам с ней разберешься и будешь юзать потом часто и со вкусом.

suscribe.pl - выводит первую форму для подписки на рассылку. Здесь юзерь вводит свое мыло.

new.pl - создание временного пользователя. Собирает данные с юзера, проверяет, что пользователя с такими данными пока нет и кладет текстовый файл файл в папку current, создает случайный пароль, выводит юзеру соответствующую html'ку и отправляет на почту запрос на подтверждение рассылки. Типа, мы хорошие и даем юзверю время передумать.

add.pl - генерирует форму для подтверждения окончательного добавления юзера в базу рассылки.

all.pl - отвечает за окончательное занесение юзера в базу рассылки и складирует данные о нем в папку users. То есть, сперва, сразу, как юзер забил свой мейл в форму, для него генерится временный пароль и отправляется к нему на мыло, а после подтверждения снова происходит проверка (чтобы не было пересечений) и в базу заносятся окончательные данные. Все, он наш!

change.pl - здесь обрабатываются запросы юзера на смену пароля, данных и отписку. Этот скрипт позволяет отписаться от рассылки (ты это серьезно?!), узнать забытый пароль (юзеру на мыло отправляется его пасс), поменять данные (мало ли, может, юзеру захотелось, чтобы его называли не "Ваше выскокопреосвещенство", а "Мега евнух всея Галактика"). Он же, собственно, и меняет эти данные в текстовых файлах.

С юзером разобрались. Теперь у нас в автономном режиме будет копиться база данных на подписчиков, однако нам нужно, собственно, и спам рассылать. Для этого можно воспользоваться shell-доступом (типа, крю-ю-ю-тто!), но некоторые козлыдни-хостеры не дают в руки shell (боятся, и правильно боятся). Тогда придется написать маленький веб-интерфейс для центра управления. Кстати, в последнем варианте получится нагляднее и можно навернуть кучу функций. Я, вот, даже хотел что-то типа Винды на Perl'е написать :), но заломало, поэтому в двигле остались заначенные на будущее заглушки, поэтому интерпретатор может ругаться - не обращай внимания, просто почисти, что тебе не нужно, а лучше прими участие в кул опенсорс проекте :).

setup.pl - просто выводит запрос на ввод админского пароля, чтобы чужие не пролезли. Эта часть не дописана. Все в твоих ручонках :).

send.pl - здесь реализована рассылка через шел. Скрипт запрашивает у админа права доступа, и может начать рассылку заново, либо с определенного места, если рассылка была прервана (читает соответствующий файл и, если там ноль, начинает с начала и записывает последний номер).

Назад на стр. 028-064-1  Содержание  Вперед на стр. 028-064-3