Файл: CMS/core/modules/servis_send_mail.php
Строк: 56
<?php
if (!defined('CMS')) { die('Access Denied!'); }
if ($is_logged) {
if (!empty($_POST['submit'])) {
$mail = !empty($_POST['mail']) ? strtolower($_POST['mail']) : '';
$subject = !empty($_POST['subject']) ? check($_POST['subject']) : 'Письмо с сайта ' . $config['site_name'];
$message = !empty($_POST['message']) ? check($_POST['message']) : '';
$code = !empty($_POST['code']) ? num($_POST['code']) : '';
$error = '';
$_SESSION['captcha_key'] = !empty($_SESSION['captcha_key']) ? $_SESSION['captcha_key'] : NULL;
$_SESSION['captcha_failures'] = !empty($_SESSION['captcha_failures']) ? (int) $_SESSION['captcha_failures'] : 0;
$_SESSION['crc32'] = !empty($_SESSION['crc32']) ? $_SESSION['crc32'] : 0;
$len_subj = cms_strlen($subject);
$len_mess = cms_strlen($message);
if (empty($_GET['rnd']) || $_GET['rnd'] <> $_SESSION['token']) {
$error = 'Неверный идентификатор сессии, повторите действие!';
}
else if ( $_SESSION['captcha_key'] === NULL || $_SESSION['captcha_key'] != $code ) {
if ( ++$_SESSION['captcha_failures'] == 3 ) {
$error = 'Вы ввели несколько раз подряд неверный код с картинки. Сгенерирован новый код.';
$_SESSION['captcha_key'] = NULL;
$_SESSION['captcha_failures'] = 0;
}
else $error = 'Проверочное число не совпало с данными на картинке!';
}
else if (empty($mail)) {
$error = 'Вы не указали E-Mail адрес получателя!';
}
else if (!preg_match('#^([a-z0-9_-.])+@([a-z0-9_-.])+(.([a-z0-9])+)+$#', $mail) && $type <> 'icq') {
$error = 'Вы ввели неверный адрес e-mail, необходим формат name@mail.ru!';
}
else if ( function_exists('dns_get_mx') && !dns_get_mx(substr(strrchr($mail, '@'), 1), $mx) && $type <> 'icq' ) {
$error = 'Неверный E-Mail адрес! Почтовый сервер не найден!';
}
else if ($len_subj < 6) {
$error = 'Слишком короткое название темы, необходимо от 5 до 100 символов!';
}
else if ($len_mess < 11) {
$error = 'Слишком короткое сообшение, необходимо от 10 до 5000 символов!';
}
else if ($len_subj > 101) {
$error = 'Слишком длинное название темы, необходимо от 5 до 100 символов!';
}
else if ($len_mess > 5000) {
$error = 'Слишком длинное или короткое сообшение, необходимо от 10 до 5000 символов!';
}
else if ( crc32($message) == $_SESSION['crc32'] ) {
$error = 'Ваше сообщение <b>уже было успешно отправлено</b>!';
}
else $error = '';
if (!empty($error)) {
$inSes->addMessage('Ошибка! ' . $error);
}
else {
$_SESSION['crc32'] = crc32($message);
$message .= "n---nIp: " . get_ip() . "nБраузер: " . get_ua() . "nОтправлено: " . date('j.m.Y / H:i', time());
$answer = false;
$answer = SendMail($mail, '', $subject, $message, $uset['users_email'], $log);
if ( $answer != 'ok' ) {
$inSes->addMessage('Произошла Ошибка! ' . $answer);
}
else {
$_SESSION['captcha_key'] = NULL;
$_SESSION['captcha_failures'] = 0;
$inSes->addMessage('Ваше сообщение успешно отправлено!', 'ok');
gen_red('index', '', RND);
}
}
}
show_header('Сервис отправки E-Mail сообщений');
$form = new cmsForm('?rnd=' . $_SESSION['token']);
$form->addText(blink('*') . ' E-mail:', 'mail', request('mail'));
$form->addText(blink('*') . ' Тема:', 'subject', request('subject'));
$form->addTextarea(blink('*') . ' Cообщение:', 'message', request('message'));
$form->addCode('<br />');
$form->addCaptcha(blink('*') . 'Проверочный код:', 'code', gen_uri('send_mail', '', RND));
echo $form->Submit('Отправить', 'submit');
unset($form);
echo '<div class="b">' . blink('*') . ' обязательны к заполнению.<br />
В вашем профиле обязательно заполнено поле Ваш E-Mail.</div>';
}
else {
show_header('Сервис отправки E-Mail сообщений');
show_login('Вы не авторизованы, чтобы отправлять E-Mail сообщения, необходимо');
}
echo '<div class="b">' . icon('return.png');
echo '<a href="' . gen_uri('index', '', RND) . '">Сервисы</a> | ';
echo '<a href="' . gen_uri('send_icq', '', RND) . '">Отправка ICQ</a></div>';
?>