$_SESSION['submit_time'] = time(); } $ans['testmail'] = $mdata['testmail']; if ($maildir) { $folder = Path::theme($maildir); $name = Path::tofs(Path::encode($data['name'])); $fname = date('Y F j H-i') . ' ' . $name . ' ' . time(); if ($conf['file'] && $file) { $src = $folder . $fname . '.' . Path::tofs($file['name']); $r = move_uploaded_file($file['tmp_name'], $src); if (!$r) { return Ans::err($ans, 'Неудалось загрузить файл'); } $data['file'] = Path::toutf(Path::pretty($src)); } } $body = Template::parse('-contacts/mail.tpl', $data); if (!$body) { $body = 'Ошибка. Не найден шаблон письма!'; } if ($maildir) { file_put_contents($folder . $fname . '.txt', print_r($body, true) . "\n\n\n\n\n" . print_r($mdata, true)); } if (!isset($mdata['email_from'])) { return Ans::err($ans, 'Ошибка с адресом получателя!'); } $r = Mail::toAdmin($mdata['subject'], $mdata['email_from'], $body, $mdata['testmail']); if (!$r) { return Ans::err($ans, "Неудалось отправить письмо из-за ошибки на сервере!"); } return Ans::ret($ans, "Письмо отправлено!<blockquote>" . $data['text'] . "</blockquote>");
$conf = Config::get('subscribe'); if (empty($_REQUEST['email'])) { return Ans::err($ans, $conf['msg']); } if (strlen($_REQUEST['email']) > 1000) { return Ans::err($ans, 'Слишком много данных. ' . $conf['msg']); } $email = strip_tags($_REQUEST['email']); $email = trim($email); $email = Path::encode($email); $agent = $_SERVER['HTTP_USER_AGENT']; $ip = $_SERVER['REMOTE_ADDR']; session_start(); if (empty($_SESSION['submit_time'])) { $_SESSION['submit_time'] = 0; } if (time() - $_SESSION['submit_time'] < 60) { return Ans::err($ans, 'Письмо уже отправлено! Новое сообщение можно будет отправить через 1 минуту!'); } $_SESSION['submit_time'] = time(); $data = array('email' => $email, 'agent' => $agent, 'ip' => $ip, 'host' => $_SERVER['HTTP_HOST']); $body = Template::parse('-subscribe/subscribe.mail.tpl', $data); Mail::toAdmin('Запрос ' . $data['host'] . ' ' . $email, 'noreplay@' . $data['host'], $body); $src = Path::resolve('~.subscribe.json'); $subs = Load::loadJSON($src); if (!$subs) { $subs = array(); } $subs[$email] = date('d.m.Y'); file_put_contents($src, Load::json_encode($subs)); return Ans::ret($ans, 'Ваша заявка принята');
chdir('../../../'); //Согласно фактическому расположению файла require_once 'vendor/autoload.php'; } ini_set("display_errors", 1); $from = 'noreplay@' . $_SERVER['HTTP_HOST']; $headers = 'From: ' . $from . "\r\n"; $headers .= "Content-type: text/plain; charset=UTF-8\r\n"; $headers .= 'Reply-To: aky@list.ru' . "\r\n"; //echo 'Нативная проверка<br>'; //$r=mail('*****@*****.**','Проверка с сервера '.$_SERVER['HTTP_HOST'],'Текст проверочного сообщения',$headers); //var_dump($r); //return;//нельзя зачастую лимит стоит сколько писем за раз можно отправлять //echo '<br>Сложная проверка<br>'; $conf = Access::$conf['admin']; $ans = array(); if (!$conf['support']) { return Ans::err($ans, 'У администратора не указан email support'); } $body = Path::theme('-mail/update.tpl'); $body = file_get_contents($body); $body = str_replace(array("{host}", "{date}"), array($_SERVER['HTTP_HOST'], date('j.m.Y')), $body); $subject = 'Выполнено обновление ' . $_SERVER['HTTP_HOST']; $email_from = 'noreplay@' . $_SERVER['HTTP_HOST']; $r = Mail::toSupport($subject, $email_from, $body); if (!$r) { error_log('Не удалось отправить тестовое письмо.'); if (Access::debug() && !Load::isphp()) { echo '<pre>Не удалось отправить <a href="/-mail/update.php">тестовое письмо</a>.</pre>' . "\n"; } }
function fromAdmin($subject, $to, $body) { //письмо от админa $conf = Access::$conf['admin']; $from = $conf['email']; return Mail::sent($subject, $from, $to, $body); }