автоматическая активация учёткок

Extalionez

Клоун
Заблокирован
Регистрация
21 Авг 2008
Сообщения
368
Реакции
191
  • Автор темы
  • Заблокирован
  • #1
Нарыл интересный велосипедик. Правда не знаю - работает иль нет. В общем он автоматически активирует учётку через мыло. Более подробнее Для просмотра ссылки Войди или Зарегистрируйся.
PHP:
<?php
    /*
        Несколько удобных функций для работы с активацией писем.
        Регаешь акки? Нужны мыла? Собрался продавать учебники и покупать авторег?
     
        Теперь можно обойтись и без этого!
 
        initializeMails($needle)
            - функция собирает валидные (в течении 10 минут) емайлы и помещает их в файл-дамп
            - как аргумент берет число - количество нужных емайлов
            - возвращает идентификатор этого файла (md5-подпись)
             
        loadMails($session)
            - подгружает все емайлы по идентификатору в массив
         
        checkLetters($sessions)
            - функция возвращает массив, содержащий список писем (дату, тему письма, ссылку) в почтовом ящике
            - как аргумент принимает результат функции loadMails()
     
        checkContents($letters)
            - функция возвращает массив с содержимым писем
     
        Для более подробного ознакомления - советую использовать print_r() для каждой из функций.
        Пример создания новой сессии мейлов (1000 мейлов):
            $session = initializeMails(1000); // например вернет 7378e02b8fcb1bf8be6399b195fa4232
        Пример получения содержимого ящиков:
            $mailbox = checkLetters(loadMails('7378e02b8fcb1bf8be6399b195fa4232'));
        Пример получения содержимого писем:
            $letters = checkContents(checkLetters(loadMails('7378e02b8fcb1bf8be6399b195fa4232')));
         
        Обычно работает такая схема, что сперва создается сессия (то есть активируется какое-то количество емайлов),
        далее идет работа Вашего скрипта, используя полученные емайлы (например регистрация чего-либо).
        После этих действий следует активировать паузу в 5 минут, дабы дождаться дохода писем на наши ящики.
        После этого можно проверять ящики, по созданной сессии, получая их содержимое (и, например, активируя зарегистрированные аккаунты по ссылкам).
     
        2Q11
    */
 
    function ex($string, $from, $to)
    {
        $string = explode($from, $string, 2);
        $string = explode($to, $string[1], 2);
        return $string[0];
    }
 
    function initializeMails($needle)
    {
        // default header
        $head = array(
            'Host: 10minutemail.net',
            'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12',
            'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
            'Accept-Language: en-us,en;q=0.5',
            'Accept-Encoding: gzip,deflate',
            'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
            'Keep-Alive: 300',
            'Connection: keep-alive'
        );
     
        // vars initializing
        $curl_multi = curl_multi_init();
        $threads = array();
        $results = array();
     
        // adding connections
        $i = 0;
        for ($i = 0; $i < $needle; $i++)
        {
            $threads[$i] = curl_init();
         
            curl_setopt($threads[$i], CURLOPT_URL, 'http://10minutemail.net/en/');
            curl_setopt($threads[$i], CURLOPT_ENCODING, 'gzip,deflate');
            curl_setopt($threads[$i], CURLOPT_HTTPHEADER, $head);
            curl_setopt($threads[$i], CURLOPT_HEADER, 1);
            curl_setopt($threads[$i], CURLOPT_RETURNTRANSFER, 1);
         
            curl_multi_add_handle($curl_multi, $threads[$i]);
        }
     
        // executing connections
        $done = null; do{curl_multi_exec($curl_multi, $done);}while($done > 0);
     
        // parsing sessions and emails
        $i = 0; $write_string = '';
        for ($i = 0; $i < $needle; $i++)
        {
            $outer = curl_multi_getcontent($threads[$i]);
         
            $phpsess    = ex($outer, 'PHPSESSID=', ';');
            $email        = ex($outer, '<input type="text" id="fe_text" class="mailtext" value="', '"');
         
            $write_string .= $phpsess.";".$email."\r\n";
            $results[] = array($phpsess, $email);
        }
     
        // logging
        $session = md5(implode('salt', $results[0]));
        $write = fopen('./emails/'.$session.'.txt','a+');
        fputs($write, $write_string);
        fclose($write);
     
        // closing connections and returning array [ PHPSESSID, EMAIL ]
        curl_multi_close($curl_multi);
        return $session;
    }
 
    function loadMails($session)
    {
        $emails = file('./emails/'.$session.'.txt');
        $parsed = array();
        foreach ($emails as $email)
        {
            if (trim($email) != '')
            {
                $email = explode(';', $email);
                $parsed[] = array(
                    'session'    => $email[0],
                    'email'        => $email[1]
                );
            }
        }
        return $parsed;
    }
 
    function checkLetters($sessions)
    {     
        $curl_multi = curl_multi_init();
        $threads = array();
        $results = array();
     
        $i = 0;
        for ($i = 0; $i < count($sessions); $i++)
        {
            $current_header = array(
                'Host: 10minutemail.net',
                'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12',
                'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
                'Accept-Language: en-us,en;q=0.5',
                'Accept-Encoding: gzip,deflate',
                'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
                'Keep-Alive: 300',
                'Connection: keep-alive',
                'Cookie: PHPSESSID='.$sessions[0]['session'].'; '
            );
         
            $threads[$i] = curl_init();
         
            curl_setopt($threads[$i], CURLOPT_URL, 'http://10minutemail.net/en/mailbox_sql.ajax.php');
            curl_setopt($threads[$i], CURLOPT_ENCODING, 'gzip,deflate');
            curl_setopt($threads[$i], CURLOPT_HTTPHEADER, $current_header);
            curl_setopt($threads[$i], CURLOPT_POST, 1);
            curl_setopt($threads[$i], CURLOPT_POSTFIELDS, 'xjxfun=GetMail&xjxr=1234567891234');
            curl_setopt($threads[$i], CURLOPT_RETURNTRANSFER, 1);
         
            curl_multi_add_handle($curl_multi, $threads[$i]);
        }
     
        $done = null; do{curl_multi_exec($curl_multi, $done);}while($done > 0);
     
        $i = 0;
        for ($i = 0; $i < count($sessions); $i++)
        {
            $email_list = curl_multi_getcontent($threads[$i]);
            $email_list = ex($email_list, '<table id="maillist">', '</table>');
            $letters = explode('<tr>', $email_list); $letters_parsed = array();
            foreach ($letters as $k => $letter)
            {
                if ($k >= 2)
                {
                    $letter = explode('</tr>', $letter);
                    $letter = $letter[0];
                    $data = explode('<td>', $letter); $letter_parsed = array();
                    foreach ($data as $j => $data_part)
                    {
                        if ($j != 0)
                        {
                            $data_part = explode('</td>', $data_part);
                            $data_part = html_entity_decode($data_part[0]);
                            $letter_parsed[] = $data_part;
                        }
                    }
                 
                    $subject = strip_tags($letter_parsed[1]);
                    $message = ex($letter_parsed[1], 'readmail.html?mid=', '\'');
                 
                    $letters_parsed[] = array(
                        'id'        => $message,
                        'email'        => $sessions[$i]['email'],
                        'session'    => $sessions[$i]['session'],
                        'from'        => $letter_parsed[0],
                        'subject'    => $subject,
                        'date'        => $letter_parsed[2]
                    );
                }
            }
            $results = array_merge($results, $letters_parsed);
        }
     
        curl_multi_close($curl_multi);
        return $results;
    }
 
    function checkContents($letters)
    {
        $curl_multi = curl_multi_init();
        $threads = array();
        $results = array();
     
        $i = 0;
        for ($i = 0; $i < count($letters); $i++)
        {
            $current_header = array(
                'Host: 10minutemail.net',
                'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12',
                'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
                'Accept-Language: en-us,en;q=0.5',
                'Accept-Encoding: gzip,deflate',
                'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
                'Keep-Alive: 300',
                'Connection: keep-alive',
                'Cookie: PHPSESSID='.$letters[$i]['session'].'; '
            );
         
            $threads[$i] = curl_init();
         
            curl_setopt($threads[$i], CURLOPT_URL, 'http://10minutemail.net/en/readmail.html?mid=' . $letters[$i]['id']);
            curl_setopt($threads[$i], CURLOPT_ENCODING, 'gzip,deflate');
            curl_setopt($threads[$i], CURLOPT_HTTPHEADER, $current_header);
            curl_setopt($threads[$i], CURLOPT_RETURNTRANSFER, 1);
         
            curl_multi_add_handle($curl_multi, $threads[$i]);
        }
     
        $done = null; do{curl_multi_exec($curl_multi, $done);}while($done > 0);
     
        $i = 0;
        for ($i = 0; $i < count($letters); $i++)
        {
            $message    = curl_multi_getcontent($threads[$i]);
            $header    = ex($message, '<table id="message">', '</table>');
         
            list($from, $to, $subject, $date) = explode('</tr><tr>', $header);
            $from        = explode('</td><td>', $from);
            $from        = explode('</td>', $from[1]);
            $from        = html_entity_decode($from[0]);
             
            $to        = explode('</td><td>', $to);
            $to            = explode('</td>', $to[1]);
            $to        = html_entity_decode($to[0]);
         
            $subject    = explode('</td><td>', $subject);
            $subject    = explode('</td>', $subject[1]);
            $subject    = html_entity_decode($subject[0]);
         
            $date        = explode('</td><td>', $date);
            $date        = explode('</td>', $date[1]);
            $date        = html_entity_decode($date[0]);
         
            $message = explode('<h2>Message</h2><div>', $message);
            $message = explode('</div>', $message[1]);
            $message = $message[0];
         
            $all = array(
                'from'        => $from,
                'to'        => $to,
                'subject'    => $subject,
                'date'        => $date,
                'message'    => $message
            );
         
            $results[$letters[$i]['id']] = $all;
        }
     
        curl_multi_close($curl_multi);
        return $results;
    }
?>
 
Назад
Сверху