SMTPDebug = 3; // Enable verbose debug output $send->isSMTP(); //$send->SMTPDebug=3; // Set mailer to use SMTP $send->Host = $frommail['host']; // Specify main and backup SMTP servers // Enable SMTP authentication $send->Username = $login; // SMTP username $send->Password = $frommail['password']; if (isset($frommail['secure'])) { $send->SMTPSecure = $frommail['secure']; $send->SMTPAuth = true; $send->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); } else { $mail->SMTPSecure = false; $mail->SMTPAutoTLS = false; } $send->Port = $frommail['port']; // TCP port to connect to $send->setFrom($frommail['mail'], 'Аргументы Недели'); $send->addAddress($mail, $mail); // Add a recipient $send->CharSet = 'UTF-8'; $send->isHTML(True); // Set email format to HTML $send->Subject = $subject; /*ob_start(); include 'mail.phtml'; $mailbody = ob_get_contents(); ob_end_clean();*/ $send->Body = $message; //$headers = "MIME-Version: 1.0\r\n"; //$headers .= "Content-type: text/plain; charset=utf-8\r\n"; //$headers .= "Content-Transfer-Encoding: 8bit \r\n"; //$headers .= "From: nomer@arguments.ru\r\n"; //$headers .= 'Reply-To: nomer@arguments.ru'."\r\n"; //if (mail($mail, $subject, $message, $headers)) // $status = 'OK'; //else // $status = 'NO'; if($send->send()) $status = 'OK'; else { $status = 'NO'; echo 'Mailer Error: ' . $send->ErrorInfo."\n"; } return $status; } echo "\nsubscript\n"; //kORM::config('argumentiru', 'newser', 'Chjk90yuiREY', 'mysql'); kORM::config('chitatel', 'chitatel', 'hjYu78kl*90Uio', 'mysql', 'argumentiru'); //kORM::config('argumentiru', 'root', 'zFgj67TyuUIO23Tyu3', 'mysql'); db_config('argumentiru', 'mysql:host=mysql;dbname=argumentiru', 'chitatel', 'hjYu78kl*90Uio'); db_config('newser', 'mysql:host=mysql;dbname=argumentiru', 'newser', 'Chjk90yuiREY'); $endnumber = kORM::table('price')->where('category_id', 1)->sort('price_id', 'desc')->one(); $endnumber = db_get("SELECT * FROM `price` WHERE `category_id` = 1 ORDER BY `price_id` DESC LIMIT 1"); //if (is_array($endnumber)) // $link = templink::get('https://argumenti.ru/pub/files/pdf/pdf/'.$endnumber['price_id'].'.pdf'); if (is_array($endnumber)) $link = 'https://klan.argumenti.ru/read/'.$endnumber['pricehash']; //$link = 'https://argumenti.ru/app/templink.php?id=3e460287f6ae89f04709c15ffd3487aa'; $subject = $endnumber['priceauthor'].' '.$endnumber['pricename']; $message = '
>АРГУМЕНТЫ НЕДЕЛИ/b>
Уважаемый читатель!
В рамках действующей подписки Вам стал доступен архив газет и подборка книг от Издательского дома «Аргументы Недели»
Для того чтобы воспользоваться сервисом, пройдите по ссылке и придумайте пароль
Вы сможете скачать Ваш экземпляр «Аргументов Недели» по ссылке - '.$link.'
- Если ссылка в письме неактивная - скопируйте ее и вставьте в адресную строку браузера.
- Добавьте адрес shop@argument.ru в контакты, чтобы письма от нас не попадали в спам.
'; if ($argv[1] == 'blat') { $message .= 'Для консультации и разрешения возникших вопросов Вы можете обратиться к нам по электронному адресу podpiska@argumenti.ru
'; } else { $message .= 'Для консультации и разрешения возникших вопросов Вы можете обратиться к нам по электронному адресу shop@argumenti.ru
'; } $message .= 'Все материалы этого номера будут доступны на сайте завтра - по Вашей личной ссылке
'; //#Зауглом $subsql = "SELECT * FROM `subscript_news` WHERE `weekly` = '1' ORDER BY `id` DESC LIMIT 1"; $subscript_news = Table('subscript_news')->where('weekly', 1)->sort('id', 'desc')->one(); $subscript_news = db_get($subsql, 'newser'); //$panfile = '/vhosts/adanar.argumenti.ru/subscript_test.html'; //if (file_exists($panfile)) { // $message .= 'ТАКЖЕ ПРЕДЛАГАЕМ ВАМ ПОДБОРКУ ИНТЕРЕСНЫХ НОВОСТЕЙ, КОТОРЫЕ НЕ ПОПАЛИ В БУМАЖНЫЙ НОМЕР:
'.file_get_contents($panfile); //} $ferr = '/vhosts/adanar.argumenti.ru/error.json'; $mails = array(); $end_id = 0; $users = array(); if ($argv[1] == 'test') { $users = [ 'ak778@mail.ru', 'ak@argumenti.ru', 'viatcheslav.zhuk@gmail.com', 'zheltov@argumenti.ru', 'panv@bk.ru' ]; $viewfile = '/vhosts/adanar.argumenti.ru/views/animag.phtml'; $filestr = view('/vhosts/adanar.argumenti.ru/views/animag.phtml', array('message'=>$message)); $filename = '/vhosts/adanar.argumenti.ru/html/number.html'; file_put_contents($filename, $filestr); /** $users = [ 'ak778@mail.ru', 'ak@argumenti.ru', 'prytkov2005@yandex.ru' ];*/ $days = 100; $subject = 'TEST - рассылка для тестовой группы'; } elseif ($argv[1] == 'aktest') { $users = ['ak@argumenti.ru']; } elseif ($argv[1] == 'blat') { $users = kORM::table('anbuy')->where('number_id', 689)->where('buy_status', 1)->all(); } elseif ($argv[1] == 'error'){ if (file_exists($ferr)) { $json_file = file_get_contents($ferr); $users = json_decode($json_file, True); } } elseif ($argv[1] == 'endnumber') { $users = kORM::table('anbuy')->where('number_id', 1118)->where('buy_status', 1)->all(); } elseif ($argv[1] == 'local') { $users = ['krez52@mail.ru']; } elseif ($argv[1] == 'support'){ /** $users= [ 'kan8809282@gmail.com', 'zubovalex54@yandex.ru',// 'malihincolya@yandex.ru', 'family4@list.ru', 'kvnsumy@mail.ru', 'sivakova45@mail.ru', '50sd015@mail.ru', 'rbp48@mail.ru', 'nik_denisov_1951@list.ru', 'slava2rf@gmail.com', 'svetayacushko@inbox.ru', 'adkham.rafikov@gmail.com', 'sberezinko@gmail.com', 'autobyd@mail.ru', 'fga50@mail.ru', 'aksand@mail.ru', 'v.kozyirev@gmail.com', 'stvzyn@mail.ru', 'potashev49@bk.ru', 'shokvadim48@gmail.com' ]; */ $users = [ 'bkorsaev@yandex.ru', 'ginzbo@me.com', 'vm.baglikov@gmail.com', 'sav58@yandex.ru' ]; } elseif ($argv[1] == 'qr'){ //$usql = "SELECT * FROM `anbuy` WHERE `number_id` = '486' AND `buy_status` = 1 AND `buy_id` > 75367"; $usql = "SELECT * FROM `anbuy` WHERE `number_id` IN (486, 689) AND `buy_status` = '1' AND `mail_status` = '0'"; $users = db_get($usql); if (count($users) == 0) { echo 'no users'; exit; } //$sql_user = kORM::table('anbuy')->where('number_id', 486)->where('buy_status', 1)->where('buy_id', 75135, '>'); //$users = $sql_user->all(); } else { //echo kORM::table('anbuy')->where('number_id', 486)->where('buy_status', 1)->where('buy_id', '46425', 'AND', '>'); //exit; //$start_id = 83722; //$end_id = 83722; $start_id = 0; $items = kORM::table('anbuy')->where('number_id', 486)->where('buy_status', 1)->where('buy_id', $start_id, '>', 'AND')->order('buy_id', 'desc')->all(); //$items = kORM::table('anbuy')->where('number_id', 486)->where('buy_status', 1)->all(); $today = date("Y-m-d H:i:s"); $today_time = strtotime($today); $date_now = time(); // текущее время (метка времени) # определяем просроченную подписку foreach ($items as $item){ $key = $item['client_id']; //нет даты начала действия if ($item['date'] == '0000-00-00 00:00:00'){ continue; } elseif ($item['date_end'] == '0000-00-00 00:00:00'){ // нет даты окончания $end_date = $item['date'].' +1 year'; } else { $end_date = $item['date_end']; //date_add($end_date, date_interval_create_from_date_string('1 year')); } // подписка еще не вступила в силу if (strtotime($item['date'] > $date_now)){ continue; } $end_time = strtotime($end_date); $date_end = date('Y-m-d H:i:s', $end_time); //вычисляем конечную дату if($end_time > $date_now) { $status = "активна"; $users[$key] = $item; //добавляем только активных $users[$key]['date_end'] = $date_end; $seconds = abs($date_now - $end_time); $days = floor($seconds / 86400); $users[$key]['days'] = $days; } else { $status = " просрочена"; $days = 0; //echo $status.' '.$item['date_start']."\n"; } //echo $status.' '.$item['date_start']."\n"; //echo " $status: ".$item['date_start']."\n"; $user_log .= $item['buy_id'].'.'.$item['buy_email'].'-'.$status.' days:'.$days.' | '.$item['date'].' = '.$date_end."\n"; } } file_put_contents('/vhosts/adanar.argumenti.ru/user.log', $user_log); //$users = array('0'=>array('buy_email'=>'vak@argumenti.ru'), '3'=>array('buy_email'=>'usatiy.ded@gmail.com')); //$users = explode(" - NO", $str); $nn =0; $col = 0; $result = ''; $pause = 1; $errors = array(); if ($argv[1] == 'aktest' or $argv[1] == 'test' or $argv[1] == 'blat' or $argv[1] == 'local' or $argv[1] == 'support' ) { //$emails = ['mail'=>'noreply@argumenti.ru', 'password'=>'eessoj8Let', 'port'=>465, 'host'=>'smtp.mail.ru', 'secure' => 'ssl']; /** $emails = ['mail'=>'news@mail.argumenti.ru', 'password'=>'UgPn&KvErnkD$5', 'port'=>465, 'host'=>'mail.argumenti.ru', 'secure' => PHPMailer::ENCRYPTION_SMTPS ]; / /** $emails = ['mail'=>'shop@argumenti.ru', 'password'=>'5{5HgJjZMgwk', 'port'=>465, 'secure' => true, 'host'=>'smtp.mail.ru' ]; */ $emails = ['mail'=>'grig@argumenti.ru', 'password'=>'Rt90Fg', 'port'=>25, 'host'=>'mx4.argumenti.ru' ]; } else { /** $emails = array ( 'gazeta@argumenti.ru', 'angazeta@argumenti.ru', 'gazeta-vsem@argumenti.ru', 'nespam@argumenti.ru', 'shoplist@argumenti.ru', 'shop5@argumenti.ru', 'shop4@argumenti.ru', 'kinigian@argumenti.ru', 'anshop@argumenti.ru', 'gazeta@argumenti.ru', 'knigian@argumenti.ru', 'pokupka@argumenti.ru', 'tovar@argumenti.ru', 'zakaz@argumenti.ru', 'order@argumenti.ru', 'vash-zakaz@argumenti.ru', 'vasha-gazeta@argumenti.ru', 'vasha-an@argumenti.ru' ); */ /*$email = [ ['login'=>'shop@argumenti.ru', 'password'=>'5{5HgJjZMgwk', 'port'=>465, 'smtp'=>'smtp.mail.ru'], ['login'=>'gazeta@argumenti.ru', 'password'=>'eessoj8Let', 'port'=>465, 'smtp'=>'smtp.mail.ru'] ];*/ $emails = ['mail'=>'grig@argumenti.ru', 'password'=>'Rt90Fg', 'port'=>25, 'host'=>'mx4.argumenti.ru' ]; /** $emails = ['mail'=>'news@mail.argumenti.ru', 'password'=>'UgPn&KvErnkD$5', 'port'=>465, 'host'=>'mail.argumenti.ru', 'secure' => PHPMailer::ENCRYPTION_SMTPS ]; */ /** $emails = ['mail'=>'shop@argumenti.ru', 'password'=>'5{5HgJjZMgwk', 'port'=>465, 'secure' => true, 'host'=>'smtp.mail.ru' ]; */ } //$keymail = 0; $frommail = $emails; $data = array(); $data['price_id'] = $endnumber['price_id']; $data['link'] = $link; $data['subscript_news'] = $subscript_news; foreach ($users as $user) { $nn++; $data['linkuser'] = ''; $data['group'] = $argv[1]; $data['days'] = $user['days']; if (isset($user['buy_email'])) $currmail = $user['buy_email']; else $currmail = $user; $currmail = mb_strtolower(trim($currmail)); $client_sql = "SELECT * FROM `clients` WHERE `clientmail` = '$currmail' LIMIT 1"; $client = db_get($client_sql); $buy_id = (int)$user['buy_id']; if ($user['client_id'] == 0 and $buy_id > 0) { // заводим клиента if (!is_array($client) or count($client) == 0){ $date = date("Y-m-d H:i:s"); $hash = md5($currmail.$date); $addclient['clientmail'] = $currmail; $addclient['clienthash'] = $hash; $addclient['clientdate'] = $date; $addclient['clientpassword'] = ''; $client_id = db_insert('clients', $addclient); echo "$client_id \n"; if ($client_id > 0){ $client['client_id'] = $client_id; } } if (isset($client['client_id']) and $client['client_id'] > 0){ // добавляем клиента в заказ $sql_update = " UPDATE `anbuy` SET `client_id` = '".$client['client_id']."' WHERE `buy_id` = '$buy_id'; "; echo "$sql_update\n"; $update = db_get($sql_update); } } if (isset($client['client_id']) and $client['clientpassword'] == '') $data['linkuser'] = 'http://klan.argumenti.ru/resetpwd/'.$client['clienthash']; if ($end_id > 0 and $user['buy_id'] > $end_id) break; $zauglom = db_get(" SELECT `news_id`, `title`, `alias`, DATE_FORMAT(date_insert, '%Y/%m') AS dateurl FROM `news` LEFT JOIN `siteparts3` ON `news`.`sitepart_id` = `siteparts3`.`sitepart_id` WHERE `news`.`sitepart_id` = '104' AND `active` = '1' ORDER BY `news_id` DESC LIMIT 1 ", 'newser'); if (isset($zauglom['news_id'])){ $data['zauglom'] = $zauglom['title']; $data['zauglom_link'] = 'https://argumenti.ru/'.$zauglom['alias'].'/'.$zauglom['dateurl'].'/'.$zauglom['news_id']; } $message = view('views/subscript.phtml', $data); if (!in_array($currmail, $mails)) { // защита от повторной отправки //file_put_contents("/vhosts/adanar.argumenti.ru/log/mailtest_$nn.html", $message); // это отправка письма $sender = email($currmail, $subject, $message, $frommail); $keymail = $keymail + 1; if (!isset($emails[$keymail])){ $keymail = 0; } if ($sender == 'NO') { $keymail = $keymail + 1; if (!isset($emails[$keymail])){ $keymail = 0; } echo "paused $pause s ... \n"; sleep($pause); // $sender = email($currmail, $subject, $message, $frommail); } //$frommail = $emails[$keymail]; if (isset($user['buy_id'])) $buy_id = $user['buy_id']; else $buy_id = $nn; if ($sender == 'NO'){ $errors[] = ['buy_id' => $buy_id, 'buy_email' => $currmail]; } else { //письмо отправлено $sql_okmail = " UPDATE `anbuy` SET `mail_status` = '1' WHERE `buy_id` = '$buy_id'; "; $okupdate = db_get($sql_okmail); } $senddate = date('H:i:s d-m-Y'); $str_info = 'ID: '.$client['client_id'].' BUY_ID: '.$buy_id.". $currmail - $sender $senddate (".$frommail['mail'].')'; echo "$str_info\n"; $resusers[] = $str_info; $mails[$currmail] = $currmail; } //sleep(3); } if ($argv[1] !== 'test') { $arr_json = json_decode($errors); file_put_contents($ferr, $arr_json); $sendsheff = new sendsheff(); $text = "Приветствую!\nНастоящим уверяю Вас в своем почтении. Высылаю результаты отправки подписки ".$endnumber['priceauthor'].' '.$endnumber['pricename']."\n"; $text .= "\nВсего доставлено: '.$nn.' экз.\n\n"; foreach ($resusers as $resuser) { $text .= "$resuser\n"; } $text .= errs2array($errors); $log_file = 'logs/subscript_'.$argv[1].'_'.date('H:i:s d-m-Y'); file_put_contents($log_file, $text); $prmails = array('0'=>'ak@argumenti.ru', '1' => 'shop@argumenti.ru', '3' => 'viatcheslav.zhuk@gmail.com', '4'=>'podpiska@argumenti.ru'); $prmails = array('0'=>'ak@argumenti.ru'); foreach($prmails as $prmail) { $send = $sendsheff->send($prmail, 'Доставка подписки '.$endnumber['priceauthor'].' '.$endnumber['pricename'], $text); } file_put_contents('/vhosts/adanar.argumenti.ru/subscript.log', $text); } function errs2array($users) { $text = "\nC ошибками:\n"; $text .= "\n".'$users'."= [\n"; foreach ($users as $user){ $text .= "\n'".$user['buy_email']."',\n"; } $text .= "\n];\n"; return $text; } echo "\n\nSubscripts: ".$nn;