Офис НП AMWAY в Ярославле
Офис Амвей в Ярославле
На карте Офис AMWAY в ЯрославлеПрием и выдача заказов, презентация продукции Амвей, мастер–классы, вопросы по бизнесу Amway:
Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
Телефон: +7 (920) 112-00-91
Email: matyxho@mail.ru
Сайт: https://www.amway.ru/user/lebedem
Визитка: http://yar.meweb.ru
Иерархия статей
Статьи » Программирование » PHPMailer: установка, подключение, настройка скрипта
Сниппет
Весьма качественный и полезный скрипт для рассылки (отправки) email сообщений с вашего сайта. Приведу пару примеров его настройки: отправка письма с вложением и массовая рассылка с вложением.
PHPMailer: установка, подключение, настройка скрипта
Опубликовал  Pisatel Добавлено  27-04-2015 15:31 27 Апрель 2015 15:31:14 23585  Прочтений 23585 Прочтений  7 Комментариев 7 Комментариев
Обновлено: 27-04-2015 15:53 Обновлено: 27 апреля 2015 15:53:29  printer
В статье расскажу об установке и настройке скрипта для отправки email сообщений PHPMailer, скачать который можно здесь: https://github.co.../PHPMailer. Нам потребуются файлы и директории:
  • /language/
  • PhpMailerAutoload.php
  • class.phpmailer.php
  • class.smtp.php
  • class.pop3.php
Итак, создадим папку, например, /mailer/, и все файлы скрипта загрузим в нее. Ну а далее я приведу пару примеров функции для отправки письма (писем). Не буду останавливаться на письмах в стандарте text, все наши письма будут в стандарте html. Итак, начнем с самого простого: функция для отправки письма с изображением (логотип сайта), но без аутентификации smtp:

Код: PHP
        function sendemail($fromemail, $fromname, $toemail, $toname, $subject, $message) {

date_default_timezone_set("Europe/Moscow"); // устанавливаем часовую зону

require "PHPMailerAutoload.php"; // подключаем файл автозагрузки

$mail = new PHPMailer(); // инициализируем класс

file_exists("/language/phpmailer.lang-ru.php") ? $mail->SetLanguage("ru", "/language/") : $mail->SetLanguage("en", /language/"); // подключили языковой пакет для вывода ошибок и отчетов

$mail->isMAIL(); // указали, что не смтп

$mail->CharSet = "UTF-8"; // кодировка заголовков

$mail->setFrom($fromemail, $fromname); // от кого

$mail->addReplyTo($fromemail, $fromname); // адрес и имя для ответа

$mail->Subject = $subject; // заголовок письма (тема сообщения)

$plain = $mail->html2text($message); // создаем текстовую версию для устройств, не поддерживающих html

$mail->isHTML(true); // указали, что сообщение в стандарте html

$img_path = "/images/mylogo.png"; // адрес логотипа

$img_cid = md5($img_path); // сид логотипа

$img_name = "mylogo"; // имя логотипа

$mail->addEmbeddedImage($img_path, $img_cid, $img_name); // добавили в тело письма логотип

$body = "<!DOCTYPE html>"; // создаем тело письма

$body .= "<html><head>"; // структуру я минимизирую, шаблонов в сети много, либо создайте свой

$body .= "<meta charset='UTF-8' />";

$body .= "<title>".$subject."</title>";

$body .= "</head><body>";

$body .= "<table><tr><td>";

$body .= "<table style='width:600px'><tr><td>";

$body .= "<a href='http://www.meweb.ru/' title='MeWEB' target='_blank'><img src='cid:".$img_cid."' alt='MeWEB' /></a></td>"; // указали место, где будет отображен логотип

$body .= "<td>";

$body .= "<a href='http://www.meweb.ru/' title='MeWEB' target='_blank'>MeWEB</a><br /><br /><a href='mailto:".$fromemail."'>".$fromemail."</a></td></tr>";

$body .= "<tr><td colspan='2'>&nbsp;</td></tr>";

$body .= "<tr><td colspan='2'><h3 syle='text-align:center'>".$subject."</h3>".nl2br($message)."</td></tr>"; // вывели в тело тему письма и само письмо

$body .= "<tr><td colspan='2'><em>All rights reserved | Copyright &copy; <a href='http://www.meweb.ru/' title='MeWEB' target='_blank'>MeWEB</a> ".date("Y")."</em></td></tr>";

$body .= "</table></td></tr></table>";

$body .= "</body></html>";

$mail->msgHTML($body); // формируем тело

$mail->AltBody = $plain; // альтернативное тело письма

$mail->addAddress($toemail, $toname); // добавляем получателя и отправляем

if (!$mail->send()) { // если произошла ошибка при отправке

$return = $toname." | ".str_replace("@", "&#64;", $toemail)." ".$mail->ErrorInfo." | ".date("d-m-Y в H:i:s"); // возвращаем сообщение об ошибке

} else {

$return = $toname." | ".str_replace("@", "&#64;", $toemail)." | ".date("d-m-Y в H:i:s");

} // если сообщение отправлено удачно- возвращаем время отправки

$mail->clearAddresses();

$mail->clearCustomHeaders();

$mail->clearAttachments();

$mail->clearReplyTos(); // чистим все заголовки

return $return;

}




Пример использования функции. Назовем наш файл с функцией sendemail.php и кинем в нашу папку /mailer/:

Код: PHP
    require_once "mailer/sendemail.php";

$sending = sendemail("от_кого@домен.ру", "Ваше_имя", "кому@домен.ру", "Имя_кому", "Тема_письма", "Сообщение");

echo "<div>".$sending."</div>";




Как видим, в принципе, ничего сложного нет. Функция вернет нам результат отправки.

Ну а в следующем примере я чуть усложню задачу: мы будем использовать SMTP и отправим письма сразу нескольким пользователям, но это будут не копии (скрытые копии) CC и BCC, а именно рассылка. То есть, фактически, ниже будет небольшой скрипт спамера))) Имена и email мы будем брать из бд. В заголовках письма и в самом письме будем посылать ссылку для отписки, чтобы меньше было шансов попасть в спам-лист почтовых сервисов. Для этого нужно будет создать страницу, перейдя на которую пользователь сразу автоматически отпишется от рассылки. Например, страница будет называться unsubscribe.php, а в качестве идентификатора пользователя мы будем передавать его уникальный id, под которым он существует в нашей бд. Что ж, начнем:

Код: PHP
     function sendemail_to_all($fromemail, $fromname, $subject, $message, $data) {

date_default_timezone_set("Europe/Moscow"); // временная зона

require "PHPMailerAutoload.php"; // подключили скрипт

$mail = new PHPMailer(); // инициализация класса

file_exists("/language/phpmailer.lang-ru.php") ? $mail->SetLanguage("ru", "/language/") : $mail->SetLanguage("en", "/language/"); // языковой пакет

$mail->isSMTP(); // указали, что работаем по протоколу смтп

$mail->Host = "smtp.yordomain.ru"; // хост

$mail->Port = "25"; // порт

$mail->SMTPAuth = true; // аутентификация включена

$mail->Username = "name@yourdomain.ru"; // реальный ящик, желательно совпадающий с вашим доменным именем

$mail->Password = "123456789"; // пароль от ящика

$mail->CharSet = "UTF-8"; // кодировка

$mail->setFrom($fromemail, $fromname); // от кого

$mail->addReplyTo($fromemail, $fromname); // кому ответить

$mail->Subject = $subject; // тема письма (заголовок)

$plain = $mail->html2text($message); // тело альтернативного письма

$mail->isHTML(true);

$img_path = "/images/mylogo.png"; // адрес логотипа

$img_cid = md5($img_path); // сид логотипа

$img_name = "mylogo"; // имя логотипа

$mail->addEmbeddedImage($img_path, $img_cid, $img_name); // добавили в тело письма логотип

$body = "<!DOCTYPE html>"; // создаем тело письма

$body .= "<html><head>"; // структуру я минимизирую, шаблонов в сети много, либо создайте свой

$body .= "<meta charset='UTF-8' />";

$body .= "<title>".$subject."</title>";

$body .= "</head><body>";

$body .= "<table><tr><td>";

$body .= "<table style='width:600px'><tr><td>";

$body .= "<a href='http://www.meweb.ru/' title='MeWEB' target='_blank'><img src='cid:".$img_cid."' alt='MeWEB' /></a></td>"; // указали место, где будет отображен логотип

$body .= "<td>";

$body .= "<a href='http://www.meweb.ru/' title='MeWEB' target='_blank'>MeWEB</a><br /><br /><a href='mailto:".$fromemail."'>".$fromemail."</a></td></tr>";

$body .= "<tr><td colspan='2'>&nbsp;</td></tr>";

$body .= "<tr><td colspan='2'><h3 syle='text-align:center'>Здравствуйте, {USER_NAME} !</h3>".nl2br($message)."<br /><br />Чтобы отписаться от рассылки, перейдите по ссылке <a href='http://www.meweb.ru/mailer/unsubscribe.php?delete={USER_ID}' target='_blank'>Отписаться</a></td></tr>"; // вывели в тело имя пользователя и само сообщение с ссылкой для отписки

$body .= "<tr><td colspan='2'><em>All rights reserved | Copyright &copy; <a href='http://www.meweb.ru/' title='MeWEB' target='_blank'>MeWEB</a> ".date("Y")."</em></td></tr>";

$body .= "</table></td></tr></table>";

$body .= "</body></html>";

$mail->msgHTML($body); // формируем тело

$mail->AltBody = $plain; // альтернативное тело письма

$i = 0;

foreach ($data as $row) { // проход по массиву из бд

unset($user); // вначале каждый раз очищаем переменную

$user = $row['user_id']; // уникальный id пользователя

$mail->addCustomHeader("Precedence", "bulk"); // добавили заголовок, чтобы дать понять почтовым сервисам, что это рассылка

$mail->AddCustomHeader("List-Unsubscribe", "<http://www.meweb.ru/mailer/unsubscribe.php?delete=".$user.">"); // добавили заголовок с ссылкой для отписки от рассылки

$mail->addAddress($row['user_email'], $row['user_name']); // добавили адрес и имя получателя

$mail->Body = str_replace(array("{USER_NAME}", "{USER_ID}"), array($row['user_name'], $user), $body); // вставляем в сообщение имя пользователя и уникальный id для ссылки

$mail->AltBody = str_replace(array("{USER_NAME}", "{USER_ID}"), array($row['user_name'], $user), $plain); // аналогично для альтернативного сообщения

if (!$mail->send()) { // если письмо не отправлено

$return[] = "ierror | ".$row['user_name']." | ".str_replace("@", "&#64", $row['user_email'])." ".$mail->ErrorInfo." | ".date("d-m-Y в H:i:s"); // возвращаем массив с ошибкой

break; // останавливаем перебор массива

} else { // если отправка прошла удачно

$return[] = "isuccess | ".$row['user_name']." | ".str_replace("@", "&#64", $row['user_email'])." | ".date("d-m-Y в H:i:s"); // возвращаем массив с отчетом

($i % 2 == 0) ? sleep(0.2) : sleep(0.4); // делаем паузу при рассылке между сообщениями

}

$mail->clearAddresses(); // в цикле чистим адрес, чтобы при новом проходе добавить другой

$mail->clearCustomHeaders(); // чистим в цикле заголовки, чтобы при новом проходе добавить новые

$i++;

}

$mail->clearAttachments();

$mail->clearReplyTos(); // очищаем

return $return; // функция возвращает нам результат в массиве

}




Далее — пример использования функции. Поместим ее в нашу папку /mailer/ в файл с именем sendemail_to_all.php. Априори подразумевается, что бд с пользователями (id, name, email) у вас уже существует и все подключения к ней выполнены. Поехали:

Код: PHP
    require "mailer/sendemail_to_all.php"; // подключили нашу функцию

$result = mysqli_query($db, "SELECT user_id, user_name, user_email FROM myusers"); // сделали выборку из базы

if (mysqli_num_rows($result)) { // если результат больше 0

while($arrs = mysqli_fetch_assoc($result)) { // запускаем цикл

$data[] = $arrs; // и формируем массив с данными пользователей

}

$sending = sendemail_to_all("mymail@mydomain.ru", "MyName", $subject, $message, $data); // отправляем письмо всем и записываем результат в переменную в виде массива, который отдаст функция

} else { иначе, если пользователей 0

$sending = "<div style='text-align:center'>База пуста!</div>"; // задаем переменную с сообщением

}

$onw = "";

$c = 0;

if (is_array($sending)) { // если переменная является массивом

foreach($sending as $wmess) { // проходим циклом

$m = explode(" | ", $wmess); // разбиваем строку по разделителю, превращая в массив, чтобы удобнее обращаться к элементам

$onw .= "<div>".((strpos($m[0], "isuccess") !== false) ? "<span style='color:green'>Отправлено: </span>" : "<span style='color:red'>Ошибка: </span>")." Имя: ".$m[1]." Email: ".$m[2]." Время: ".$m[3]."</div>";

$c++;

}

$all = $c; // счетчик

} else {

$onw .= $sending;

$all = 0;

}

echo $onw; // выводим результат

echo "Всего отправлено: ".$all;




Конечно, вышеприведенный скрипт не претендует на самое элегантное решение, однако он вполне работоспособен и неплохо справляется со своей непосредственной задачей — отправкой email сообщений группе пользователей.

Страницу для отписки, думаю, состряпаете сами, если возникнут вопросы или трудности — пишем в комментариях.

На этом заканчиваю. Основной целью данной статьи была необходимость показать, как работает скрипт PHPMailer. Это, конечно, далеко не все его возможности, и если будет время, как–нибудь мы еще поговорим о нем. Удачи всем и всего самого доброго.
Понравилась статья?
Метки для данной статьи
Похожие статьи
Поделиться:   
Комментарии
#1 | мик 28 октября 2017 15:49:11
No Avatar
Гость
ни*** не понял ....Агрессивный

пойду гетхаб транслятором лучше переведу почитаю
#2 | Pisatel 28 октября 2017 23:59:47
Avatar
Отсутствует
Супер Администратор
Активный
С 03. февраля 2013
мик, не знаю, как еще доступнее написАть.
Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
#3 | Jamshid 14 января 2018 19:16:56
No Avatar
Гость
Привет! все хостинге порт так бывает 25
#4 | Pisatel 23 января 2018 17:59:27
Avatar
Отсутствует
Супер Администратор
Активный
С 03. февраля 2013
Jamshid, здравствуй. Это вопрос или утверждение?
Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
#5 | German 20 февраля 2018 20:17:43
No Avatar
Гость
Короче спамкреэйтер вышел из этого скрипта. Все написал как в статье, подключил базу и SMTP отправил непонятное количество писем (около 32к). При этом скрипт ошибок не выдал. К слову нужно было отправить 950 писем. Но это не все. Он шлет по одному письму только в первую итерацию массива. Если вдруг произошел break то он шлет уже по два письма каждому. У меня дошло до 290 писем каждому. Кроме, дробный seep может существовать? В целом задумка не плохая, но давайте до ума доводить.
#6 | Pisatel 19 апреля 2018 19:58:26
Avatar
Отсутствует
Супер Администратор
Активный
С 03. февраля 2013
German, задумка неплохая, но это дела давно минувших дней)))
Я не европеец. И не азиат. Я русский. Я россиянин. Я за истинные семейные христианские ценности. И это - моя национальная идея.
#7 | Danielmup 11 февраля 2019 09:18:04
No Avatar
Гость
&#1056;&#1072;&#1089;&#1089;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1090; &#1079;&#1074;&#1077;&#1079;&#1076;&#1085;&#1099;&#1081; &#1076;&#1080;&#1077;&#1090;&#1086;&#1083;&#1086;&#1075;, &#1082;&#1072;&#1085;&#1076;&#1080;&#1076;&#1072;&#1090; &#1084;&#1077;&#1076;&#1080;&#1094;&#1080;&#1085;&#1089;&#1082;&#1080;&#1093; &#1085;&#1072;&#1091;&#1082;, &#1074;&#1088;&#1072;&#1095; &#1101;&#1089;&#1090;&#1077;&#1090;&#1080;&#1095;&#1077;&#1089;&#1082;&#1086;&#1081; &#1084;&#1077;&#1076;&#1080;&#1094;&#1080;&#1085;&#1099; &#1052;&#1072;&#1088;&#1075;&#1072;&#1088;&#1080;&#1090;&#1072; &#1050;&#1086;&#1088;&#1086;&#1083;&#1105;&#1074;&#1072;.
tradeblg.ru/tiny/r7/images/ish.jpg

&#1042; &#1074;&#1086;&#1079;&#1088;&#1072;&#1089;&#1090;&#1077; 40-45 &#1083;&#1077;&#1090;, &#1072; &#1090;&#1086; &#1080; &#1088;&#1072;&#1085;&#1100;&#1096;&#1077;, &#1074; &#1086;&#1088;&#1075;&#1072;&#1085;&#1080;&#1079;&#1084;&#1077; &#1089;&#1085;&#1080;&#1078;&#1072;&#1077;&#1090;&#1089;&#1103; &#1074;&#1099;&#1088;&#1072;&#1073;&#1086;&#1090;&#1082;&#1072; &#1074;&#1077;&#1097;&#1077;&#1089;&#1090;&#1074;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1088;&#1072;&#1089;&#1097;&#1077;&#1087;&#1083;&#1103;&#1102;&#1090; &#1078;&#1080;&#1088;&#1099;. &#1069;&#1090;&#1072; &#1087;&#1088;&#1086;&#1073;&#1083;&#1077;&#1084;&#1072; &#1087;&#1088;&#1077;&#1089;&#1083;&#1077;&#1076;&#1091;&#1077;&#1090; &#1082;&#1072;&#1082; &#1084;&#1091;&#1078;&#1095;&#1080;&#1085;, &#1090;&#1072;&#1082; &#1080; &#1078;&#1077;&#1085;&#1097;&#1080;&#1085;. &#1046;&#1080;&#1088;&#1099; &#1085;&#1072;&#1082;&#1072;&#1087;&#1083;&#1080;&#1074;&#1072;&#1102;&#1090;&#1089;&#1103; &#1087;&#1086;&#1076; &#1082;&#1086;&#1078;&#1077;&#1081;, &#1074; &#1089;&#1091;&#1089;&#1090;&#1072;&#1074;&#1072;&#1093;, &#1073;&#1088;&#1102;&#1096;&#1085;&#1086;&#1081; &#1087;&#1086;&#1083;&#1086;&#1089;&#1090;&#1080;, &#1073;&#1105;&#1076;&#1088;&#1072;&#1093; &#1080; &#1074;&#1085;&#1091;&#1090;&#1088;&#1077;&#1085;&#1085;&#1080;&#1093; &#1086;&#1088;&#1075;&#1072;&#1085;&#1072;&#1093;. &#1069;&#1090;&#1086; &#1085;&#1072;&#1085;&#1086;&#1089;&#1080;&#1090; &#1074;&#1088;&#1077;&#1076; &#1086;&#1088;&#1075;&#1072;&#1085;&#1080;&#1079;&#1084;&#1091; &#1080; &#1087;&#1088;&#1080;&#1074;&#1086;&#1076;&#1080;&#1090; &#1082; &#1088;&#1072;&#1079;&#1074;&#1080;&#1090;&#1080;&#1102; &#1086;&#1087;&#1072;&#1089;&#1085;&#1099;&#1093; &#1079;&#1072;&#1073;&#1086;&#1083;&#1077;&#1074;&#1072;&#1085;&#1080;&#1081;.

&#1050;&#1072;&#1082; &#1091;&#1073;&#1080;&#1074;&#1072;&#1077;&#1090; &#1083;&#1080;&#1096;&#1085;&#1080;&#1081; &#1074;&#1077;&#1089;

&#1055;&#1077;&#1088;&#1074;&#1086;&#1077; &#1084;&#1077;&#1089;&#1090;&#1086; &#1074; &#1056;&#1086;&#1089;&#1089;&#1080;&#1080; &#1089;&#1088;&#1077;&#1076;&#1080; &#1087;&#1088;&#1080;&#1095;&#1080;&#1085; &#1089;&#1084;&#1077;&#1088;&#1090;&#1080;, &#1074;&#1099;&#1079;&#1074;&#1072;&#1085;&#1085;&#1099;&#1093; &#1080;&#1079;&#1073;&#1099;&#1090;&#1086;&#1095;&#1085;&#1099;&#1084; &#1074;&#1077;&#1089;&#1086;&#1084;, &#1079;&#1072;&#1085;&#1080;&#1084;&#1072;&#1102;&#1090; &#1089;&#1077;&#1088;&#1076;&#1077;&#1095;&#1085;&#1086;-&#1089;&#1086;&#1089;&#1091;&#1076;&#1080;&#1089;&#1090;&#1099;&#1077; &#1079;&#1072;&#1073;&#1086;&#1083;&#1077;&#1074;&#1072;&#1085;&#1080;&#1103;: &#1072;&#1088;&#1090;&#1077;&#1088;&#1080;&#1072;&#1083;&#1100;&#1085;&#1072;&#1103; &#1075;&#1080;&#1087;&#1077;&#1088;&#1090;&#1077;&#1085;&#1079;&#1080;&#1103; (&#1087;&#1086;&#1074;&#1099;&#1096;&#1077;&#1085;&#1085;&#1086;&#1077; &#1082;&#1088;&#1086;&#1074;&#1103;&#1085;&#1086;&#1077; &#1076;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077;), &#1080;&#1096;&#1077;&#1084;&#1080;&#1095;&#1077;&#1089;&#1082;&#1072;&#1103; &#1073;&#1086;&#1083;&#1077;&#1079;&#1085;&#1100; &#1089;&#1077;&#1088;&#1076;&#1094;&#1072;, &#1080;&#1085;&#1089;&#1091;&#1083;&#1100;&#1090; &#1080; &#1080;&#1085;&#1092;&#1072;&#1088;&#1082;&#1090;. &#1054;&#1085;&#1080; &#1091;&#1073;&#1080;&#1074;&#1072;&#1102;&#1090; 5 &#1084;&#1080;&#1083;&#1083;&#1080;&#1086;&#1085;&#1086;&#1074; &#1095;&#1077;&#1083;&#1086;&#1074;&#1077;&#1082; &#1082;&#1072;&#1078;&#1076;&#1099;&#1081; &#1075;&#1086;&#1076;. &#1053;&#1072; &#1074;&#1090;&#1086;&#1088;&#1086;&#1084; &#1084;&#1077;&#1089;&#1090;&#1077; &#8212; &#1076;&#1080;&#1072;&#1073;&#1077;&#1090;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1074; 2016 &#1075;&#1086;&#1076;&#1091; &#1087;&#1088;&#1080;&#1086;&#1073;&#1088;&#1077;&#1083; &#1092;&#1086;&#1088;&#1084;&#1091; &#1075;&#1083;&#1086;&#1073;&#1072;&#1083;&#1100;&#1085;&#1086;&#1081; &#1101;&#1087;&#1080;&#1076;&#1077;&#1084;&#1080;&#1080;. &#1055;&#1086; &#1076;&#1072;&#1085;&#1085;&#1099;&#1084; &#1042;&#1054;&#1047;, &#1079;&#1072; &#1087;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1080;&#1077; 10 &#1083;&#1077;&#1090;, &#1089;&#1084;&#1077;&#1088;&#1090;&#1085;&#1086;&#1089;&#1090;&#1100; &#1086;&#1090; &#1076;&#1080;&#1072;&#1073;&#1077;&#1090;&#1072; &#1074;&#1086;&#1079;&#1088;&#1086;&#1089;&#1083;&#1072; &#1085;&#1072; 52%.

&#1040;&#1085;&#1072;&#1083;&#1080;&#1079; &#1079;&#1072;&#1073;&#1086;&#1083;&#1077;&#1074;&#1072;&#1077;&#1084;&#1086;&#1089;&#1090;&#1080; &#1085;&#1072;&#1089;&#1077;&#1083;&#1077;&#1085;&#1080;&#1103; &#1056;&#1086;&#1089;&#1089;&#1080;&#1080; &#1087;&#1086;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1090;, &#1095;&#1090;&#1086; &#1089;&#1088;&#1077;&#1076;&#1080; &#1083;&#1080;&#1094;, &#1085;&#1077; &#1076;&#1086;&#1078;&#1080;&#1074;&#1096;&#1080;&#1093; &#1076;&#1086; 50 &#1083;&#1077;&#1090;, 97% &#1080;&#1084;&#1077;&#1083;&#1080; &#1087;&#1088;&#1086;&#1073;&#1083;&#1077;&#1084;&#1099; &#1089; &#1083;&#1080;&#1096;&#1085;&#1080;&#1084; &#1074;&#1077;&#1089;&#1086;&#1084;.

&#1055;&#1086;&#1083;&#1085;&#1072;&#1103; &#1089;&#1090;&#1072;&#1090;&#1100;&#1103; &#1079;&#1076;&#1077;&#1089;&#1100;: https://clck.ru/F9Aqt
Добавить комментарий
Имя:

Проверочный код:
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
folder Вопрос по переделке bb-кода
PHP, MySQL
2753 5 Pisatel
26. мая 2017
folder Вопросы по Ajax форме обратной связи
CMS PHP Fusion
11041 48 Ditrin
19. февраля 2017
folder BBCode YouTube Video Colorbox mod
CMS PHP Fusion
7204 2 Pisatel
10. декабря 2016
folder Как лучше создать собственную страницу?
CMS PHP Fusion
6092 17 Pisatel
11. мая 2016
folder Небольшие вопросы по скриптам магазина и катало...
PHP, MySQL
48280 80 Pisatel
11. января 2016
folder BBCode Code mod
CMS PHP Fusion
3665 0 Pisatel
31. августа 2015
folder Ajax Like Dislike Article Panel
CMS PHP Fusion
7266 16 Pisatel
07. июля 2015
folder Хлебные крошки / BreadCrumbs SEO Panel
CMS PHP Fusion
8061 17 Pisatel
04. июля 2015
folder Abbr Description BBCode
CMS PHP Fusion
2678 0 Pisatel
15. июня 2015
folder Плагин Email рассылки Mail To All by Pisatel
CMS PHP Fusion
11328 32 Pisatel
26. апреля 2015
folder Подозрительный трафик и прочие страшилки
Всякая хрень
5020 2 Ditrin
23. апреля 2015
folder Мод Newsletter - рассылка писем пользователям с...
CMS PHP Fusion
6800 13 Pisatel
10. апреля 2015
folder Мод отправки писем PHPMailer для PHP-Fusion
CMS PHP Fusion
36060 113 Ditrin
06. апреля 2015
folder Появление неизвестного файла subscriptions.php
CMS PHP Fusion
3383 2 Pisatel
06. апреля 2015
folder Autoban on IP
CMS PHP Fusion
12789 13 Pisatel
03. апреля 2015