Создаем спам-лист

Условия:

  • адреса должны быть активными
  • сбор адресов должен быть автоматизированным
  • количество адресов должно быть достаточным (более 100 000)
  • формат спам-листа: таблица в MySQL

Месторождение активных email’ов: сервис mail-ответы. Адресов предостаточно (более 8 000 000 пользователей). Ящики активные, так как пишут обычные люди от своего имени. В отличие от форумов и блогов, в которых адреса не видны, здесь все ящики открыты. Нужно лишь навести курсор на иконку mail-агента. Это настоящий рай для спамеров.

mail-ответы

Автоматизируем сбор адресов
Создаем таблицу “spamlist” в базе данных. Таблица состоит из двух полей автоикремент id и уникальное поле email.

CREATE TABLE `spamlist` (
`id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`email` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE ( `email` )
);

Выставляем в php.ini директиву max_execution_time = 30000000 (по умолчанию max_execution_time = 30). В противном случае через 30 секунд вы получите ошибку “Fatal error: Maximum execution time of 30 seconds exceeded” и скрипт остановится.

При вставке в таблицу вместо INSERT используется конструкция INSERT IGNORE, которая не выдает ошибку в случае, если мы вставляем в таблицу уже существующий в ней email (поле email уникально).

<?php
$mysqli = new mysqli('localhost', 'root', '', 'spam');    

for ($i=1; $i<500; $i++) {
	$content = file_get_contents('http://otvet.mail.ru/open/?asort=0&asc=0&opg='.$i);
	$pattern = '/to=([a-z0-9.-_@]+)"/';
	$emails  = array();
	preg_match_all($pattern,$content,$emails);    

	if (!empty($emails[1])) {
		foreach ($emails[1] as $email) {
			$mysqli->query('INSERT IGNORE INTO spamlist(email) VALUES("'.$email.'")');
		}
	}
}
?>

Запустил скрипт, ушел варить кофе. Через 8 минут набралось 2500 ящиков, т.е примерно 5 ящиков в секунду (при ширине канала 256 кбит/с) . Таким образом за неделю можно собрать (60*60*24*7)*5 = 3 024 000, что при широком канале вполне реально. Основным минусом полученного спам-листа является отсутствие таргетированности.

P.S. Материал представлен исключительно для ознакомления и не является руководством к действию.

Теги: email, MySQL, PHP, спам
Английский язык для начинающих