function sbormail(){ set_time_limit(0); $fun = __FUNCTION__; $puth = __FILE__; if (isExecuted($puth.".".$fun,$time=3)) {echo "Скрипт уже запущен"; exit();}else{updateLockTime($puth.".".$fun ,$state='');}//создаем дескриптор и пишет в него время текущее, при следующем запуске будет проверяться сколько времени ушло после последнего запуска, если времени мало то не запустится $start_time = microtime(true); $log = "http://95.211.148.112/squirrelmail/src/redirect.php"; $url = "http://95.211.148.112/squirrelmail/src/right_main.php?mailbox=INBOX&sort=500"; $login = "jessica@xenubox.com"; $pass = "29041988"; // данные для входа на мыло $postdata = "login_username=$login&secretkey=$pass&js_autodetect_results=1&just_logged_in=1"; $referer = 'http://95.211.148.112/squirrelmail/src/login.php'; $main = post_content($log,$postdata,$referer); $data = get_web_page($url); $data = html_entity_decode($data['content']); // почтовый ящик заменяет некоторые символы типа пробелы на&aim и прочую хуйню из за чего regx не срабатывает, перекодирует в нужный формат странички //print_r($data); $query3 = "(SELECT * FROM ".$this->ci_adv." WHERE count='1' AND otv != '1' ORDER BY `id` DESC LIMIT 15000)";//из базы достаем для отправки первого письма c определенным лимитом к примеру последние 15к И У КОТОРЫХ ЕЩЕ НЕТ ОТВЕТА, это примерно 2-3 дня спама по Лас Вегасу, такая фигня выполняется 150 секунд, так же перенесли логику сюда по проверке сразу на блеклист $res3 = $this->db->query($query3); $data2 = $res3->result_array(); $i = 1; $len = 46;//количество символов после который почтовик обрезает заголовок $fh = fopen($puth.".".$fun.".log",'a+'); foreach($data2 as $row) { $sub = trim(preg_quote($row['subject'],"/")); //все спец символы экранируются preg_match("|(?<=Re: )$sub(?=\<\/a\>)|i",$data,$match); // дергаем линки по точному вхождению чтобы не было путаницы типа mustang и mystang best!! ограничением по Но тут получается могут другие челы указать с таким же названием свою объяву, БЛАГОДАРЯ otv != '1' мы отсекает у которых есть письма по идее, если два чела прям с минимальным промежутком времени создали свои объявы одинаковые то тут ничего не подделаешь. preg_match("|passed_id\=(\d{1,6})\&startMessage=1\" \>Re: $sub\<\/a\>|i",$data,$match2); // дергаем id, чтобы патом мыла дернуть if(isset($match[0]) AND $match[0] != NULL) { // проверяем чтобы точно regx сработал и не был нулевым if(isset($match2[1]) AND $match2[1] != NULL){ //проверяем чтобы второй regx с id не был пустым preg_match("|title=\"([\w\.\/-@-]+)\">