Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

Php скрипт рассылки писем: PHP Скрипт отложенной рассылки писем. « Блог вебмастера Романа Чернышова

Содержание

Скрипт email рассылки. Движок рассылки для сайта.

Скрипт email рассылки. Движок рассылки для сайта.
Email
Скрипт
Объявления
Цены
Справка
Регистрация
Вход

Владельцам сайтов и вебмастерам рекомендуем воспользоваться PHP скриптом подписки BiMailer. Установив на сайте, в распоряжении появляется полноценный интерфейс без лимитной рассылки писем, не требующий затрат.

BiMailer 3.7 от 21.08.2019 — php скрипт email рассылки писем и подписки посетителей сайта по категориям, с установкой на виртуальных хостинг имеющий поддержку PHP и MySQL. Предоставляет полный функционал для организации email маркетинга.

Скачать BiMailer 3.7 Установка Справка

PHP скрипт рассылки писем

Созданный с целью организации подписки посетителей, скрипт обрел возможность рассылать электронную почту и со временем, php скрипт email рассылки писем BiMailer 3.7 вырос в самостоятельный продукт. Для него создан отдельный сайт, на котором размещена вся справочная информация, однако оф. разработчиками остается команда BusMail.

Email рассылка не спамом

За счет использования грамотных RFC заголовков, алгоритма DKIM и подключения дополнительных хостингов для рассылки.

Дизайн писем

Удобный HTML редактор, полная поддержка мультимедийных вложений, изображений и реквизитов получателей в теле письма.

Подписка посетителей

Подписка посетителей по категориям с необходимым количеством информ. полей, отписывание по ссылке, свободный импорт и экспорт баз email адресов.

Скрипт email рассылки PHP

Множество сервисов рассылок дают возможность отправлять ограниченное число писем или ограниченное время и постоянно тянут большие деньги за продление лимитов. Помимо этого, загруженные e-mail адреса затем могут использоваться под обстрел рекламой без участия заказчика услуги. В итоге адресаты просто меняют свой почтовый адрес, а заказчик, оставаясь в неведении продолжает платить деньги и оповещать по старым реквизитам электронной почты. Эффективность падает…

На фоне описанных событий становится понятно — рассылка электронных писем на email адреса подписчиков требует тотального администрирования. С этой задачей отлично справляется скрипт email рассылки PHP — BiMailer 3.7

Сайт скрипта

PHP email рассылка

Установка скрипта и его использование доступны после регистрации в системе. Для работы необходим, предустановленный Flash плеер. Имеется тестовый (не активированный) режим, в котором ограничена рассылка писем по базе свыше 500 адресов, отсутствует поддержка фоновой рассылки, алгоритма DKIM и дополнительных заголовков письма. Если нужна помощь пишите нам, либо воспользуйтесь подготовленным справочным руководством.

Для наших клиентов, скрипт рассылки предоставляется под полное управление в исходных PHP файлах для установки на любой хостинг. Активированная версия не имеет ограничений и не требует никаких последующих затрат, благодаря чему можно оказывать услуги электронных рассылок.

Изменения в версии 3.7 и отзывы BiMailer

  • Исправлена ошибка с зарезервированными именами файлов PHP;
  • Исправлена ошибка загрузки списка серверов из файла;
  • Добавлен проторкол SOCKS5-HOSTNAME для прокси;
  • Усовершенствован код определения SSL рассылки почты;
  • Автоматическое разрешение неподтвержденных сертификатов при подключении к прокси и тоннелям;
  • Исправление мелких ошибок кроссобраузерности;

АнтиспамКонфиденциальностьПолитика безопасностиОбратная связь

Скрипт массовой рассылки Moguta.Mailer™

Moguta.Mailer™ — это php скрипт предоставляющий web-интерфейс для управления email-рассылками. Скрипт необходимо устанавливать на ваш web-сервер/хостинг отвечающий следующим системным требованиям:

  • Хостинг с операционной системой – Unix;
  • Минимальный объем оперативной памяти 128мб;
  • Базы данных — MySQL 5+ с поддержкой системы хранения данных: MyISAM;
  • Веб-сервер — Apache 2.2.x.
  • Интерпретатор PHP 7 или 5.4+, с установленными модулями: session, json, curl, php_zip, gd_lib, xmlwriter, xmlreader, ionCube;
  • Права на удаление и добавление файлов CHMOD 755, на корневую папку сайта и все вложенные в нее папки и файлы. Владелец файлов должен совпадать с владельцем, от которого работает веб-сервер.

Как установить

  1. Скачайте дистрибутив Moguta.Mailer;
  2. Арендуйте хостинг или VPS/VDS сервер, соответствующий системным требованиям представленным выше;
  3. Загрузите архив c Moguta.Mailer в корень вашего сайта;
  4. Распакуйте архив;
  5. В адресной строке браузера откройте ваш сайт. Вы увидите мастер установки Moguta.Mailer™;
  6. В процессе установки, вам потребуется ввести параметры для подключения к базе данных MySQL, которую необходимо будет предварительно создать, с помощью панели управления хостинга;

Подробное видео об установке и настройке Moguta.Mailer™

Как настроить отправку писем

  1. Сразу после установки переходите в панель управления, она доступна на главной странице сайта
  2. Откройте раздел «Настройки»->»Базовые»
  3. Обязательно заполните поля:

    Вместо [email protected] — подставьте свой email, зарегистрированный на яндекс.почте.

    Яндекс.Почта приведена только для примера, в действительности можно использовать любой другой SMTP сервер.

  4. Для проверки, перейдите в раздел «Письма», создайте новое письмо, после чего нажмите на иконку «Самолетик», в открывшемся окне введите любой ваш email на который хотите отправить письмо. Если настройки указаны корректно, то письмо будет доставлено вам на почту. Почта может не отправляться исключительно в случае некорректных параметров SMTP.
  5. Если письмо отправляется, то следующим шагом необходимо создать CRON задачу curl -s «http://вашдомен/cron» на вашем хостинге, которая через заданный интервал (3-10 минут в зависимости от объемов рассылки) будет обращаться к странице сайта http://ваш_домен/cron и собирать очередь писем для рассылки.

Как настроить автоответчики

Moguta.Mailer™ — позволяет создавать цепочку последовательных писем, которые будут автоматически отправляться вашим подписчикам по заданному расписанию.

В разделе «Письма», при создании нового письма отметьте флажок: «Задать время отправки письма», отобразится панель для выбора времени отправки письма, которое должно пройти после подписки клиента на рассылку.

При заданном времени отправки, письмо получит статус «Автоответчик», и будет автоматически отправляться новым подписчикам.

Подключение RSS ленты

Moguta.Mailer™ — позволяет транслировать содержание новостной RSS ленты на email подписчиков. Если вы часто публикуете новости на своем сайте, то данный функционал очень удобно, и сократит время на ведение email кампании и автоматически создаст письма с новостями и отправит их.

Можно подключать любое количество RSS каналов. Чтобы подключить rss канал сайта созданного на Moguta.CMS , добавьте в настройках Moguta.Mailer™ https://вашдомен/blog/rss или https://вашдомен/new/rss в зависимости от используемого плагина публикаций. Если вы используете блог на WordPress, то ссылка на rss будет иметь вид http://вашдомен/feed

Как настроить e-mail кампанию

После того как предварительные настройки выполнены можно переходить к работе с вашим сервисом email рассылок.

  1. Создайте подписку в разделе «Подписки». Вы получите ссылку на подписную страницу и форму для встраивания на сторонний. Страницу можно оформить так как вам необходимо, в плоть до полноценного лендинга. Для этого потребуется скопировать заранее подготовленную HTML верстку лендинга в код подписной страницы на сервисе.
  2. Если вы планируете честно собирать базу подписчиков, разместите форму для подписки или ссылку на подписную страницу на вашем стороннем сайте.
  3. Для загрузки готовой базы адресов нажмите на иконку «@», для импорта базы email адресов.
  4. Перейдите в раздел «Письма», создайте письмо и укажите в получателях только что созданный список рассылки.
  5. Ожидайте выполнения CRON задания curl -s «http://вашдомен/cron» , которое вы прописали в настройках хостинга.
  6. Как только задание будет выполнено, соберется очередь писем на отправку по созданному вами списку рассылок, и они будут отправлены.

Что-то не работает

Если что-то не работает, или работает не так, включите логирование для отладки:

для этого откройте файл mg-core/lib/log.php и замените строку

static private $write = false;

на

static private $write = true;

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

Обязательно выключите логирование после отладки, поскольку это сильно нагружает сервер и может привести к увеличению времени доставки письма.

mysql — Основные правила рассылки на PHP

Рассылка через базу не совсем хорошее решение… Это лишняя нагрузка на базу, а следовательно падение производительности, отсутствие тайм-аутов на выполнение задачи (нужно писать свой костыль), не расширяемость и т.д. По сути отправляя через базу вы пишете просто свою самописную очередь на реляционном хранилище, но зачем писать велосипед, когда он уже написан? 🙂

Правильное решение — это использовать очередь сообщений (задач). Они придуманы для того, чтобы заниматься следующими задачами:

  • отложенная обработка пользовательских данных;
  • передача статистики;
  • сглаживание нагрузки на относительно медленные системы;
  • выполнение периодических задач.

Плюсы данного решения:

  • Отправка писем универсальна с любого компонента системы, пусть то форма регистрации или ваша рассылка. Представьте как круто, у Вас один интерфейс на отправку, и вы просто отправляете задачу откуда угодно не прибегая к подключению библиотеки на отправку писем.
  • Расширяемость — вы можете добавить абсолютно любой канал рассылки просто добавил поле тип (смс, звонок, письмо, почта России) и поддержав его в обработчиках.
  • Время добавления задачи всегда моментально для клиента добавляющего сообщение в очередь.
  • Возможность ускорить отправку писем просто добавив еще несколько Worker’ов
  • Надежность — добавленные сообщения в очередь не пропадут (если так настроено), и задача будет считаться выполненной только когда скрипт скажет что все окей. Чтобы уберечься от отвала демона очереди можно развернуть кластер.
  • Относительно быстрая интеграция в архитектуру

У вас есть Publisher публикующий сообщение в очередь о том, что нужно отправить письмо такому-то адресату, с таким-то текстом, далее есть консьюмеры (воркеры) которые берут эти задачи из очереди и отсылают письма клиентам. Если косьюмер упал, не смог отправить, он просто возвращает задачу в очередь обратно и ее возьмет другой консьюмер который попробует ее отправить.

В плане архитектуры думаю разобрались, далее перейдем к тому как обойти ограничение на хостинге и отправлять письма. Если вы хотите отправлять большие объемы — то можно использовать сервис отправки писем с API, например Mailgun, который позволяет бесплатно отправлять 10000 писем в месяц, хотя возможно для Вас это все таки мало..

Есть сервисы которые занимаются чисто рассылками — например unisender — можете даже тогда ничего не писать, а просто загружать туда базу своих emailов и отправлять им письма.

Чтобы ограничить кол-во передаваемых сообщений используйте какое-то хранилище для хранения количества. Можете создать таблицу в базе данных и писать атомарной операцией в нее, сколько писем было отправлено за текущий час и при превышении интервала прекращать отправку. Вы можете добавить кейс, о том что если в основном канале доставки кончился лимит — отправляем через вторичный.

Я бы рекомендовал Вам перейти с обычного хостинга на какой-нибудь VPS для решения подобных задач, за счет возможности собственного администрирования и отсутствия ограничений на отправку писем.

Подписка на сайте — рассылка писем

В предыдущей статье мы создали форму подписки для сайта и написали функционал, который проверяет введенные посетителем данные, сохраняет в БД и выводит уведомления без перезагрузки страницы. Теперь в базе данных у нас есть e-mail подписчика и дата подписки (в виде метки времени UNIX). Осталось организовать саму рассылку. Дело это не такое уж и простое.

Есть два варианта создания рассылки писем подписчикам сайта:

  • использование стороннего сервиса;
  • написание своего функционала рассылки.

По-поводу первого варианта могу сказать что у него есть несколько минусов. Вот недавно как раз читал, что закрылся один из таких популярнейших сервисов. При этом администрация предупреждала, что с такого-то числа все данные по подписчикам будут удалены и нужно было срочно импортировать свои данные. То есть, при использовании такого способа, ваша подписка будет зависима от внешних факторов. Так же в отсылаемые письма будут вставляться чужие ссылки. Ну а платные сервисы понятно какой минус имею.

В данной статье мы напишем скрипт своей рассылки, запускать который можно либо вручную, либо повесив на какое-либо событие (к примеру когда посетитель открывает какую-то, либо любую, страницу), или (оптимальный вариант) прописав время выполнения скрипта по расписанию в Cron.

Начнем.

Прежде всего создадим таблицу send_subscr. Для этого выполним миграцию (или создав нужные поля вручную):

public function safeUp()
{
    $tableOptions = null;
    if ($this->db->driverName === 'mysql') {
        $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB';
    }
    $this->createTable('{{%send_subscr}}', [
        'id' => $this->primaryKey(),
        'post_id' => $this->integer()->notNull(),
        'subscriber_id' => $this->integer()->notNull(),
        'end' => $this->boolean()->defaultValue(0),
    ], $tableOptions);
}
public function safeDown()
{
    $this->dropTable('{{%send_subscr}}');
}

Таблица имеет следующие поля:

  • id — уникальный идентификатор последней рассылки. Каждая строка рассылки будет соответствовать одному посту по которому будут рассылаться уведомления, то есть строки будут добавляться только когда найден новый пост.
  • post_id — уникальный идентификатор статьи (поста). Id поста будем брать из соответствующей таблицы. У меня это «post».
  • subscriber_id — уникальный идентификатор последнего подписчика, которому был отправлен выпуск. Данные будем брать из таблицы, которую создавали в предыдущей статье, когда создавали форму подписки «subscription».
  • end — закончена рассылка или нет (1-закончена, 0- нет).

Теперь нужно создать контроллер и модель, которые будут обрабатывать нашу рассылку. Создавать их будем в консольной среде, т.к. консольные приложения обычно и используются для создания фоновых и служебных задач, поддерживающих сайт.

Создание модели.

Код модели будет максимально прокомментирован, т.к. он не совсем прост для понимания.В папке console\models создадим файл модели SendSubscr.php с содержимым:

<?php
namespace console\models;
use Yii;
use common\models\Post;
use common\models\Subscription;

class SendSubscr extends \yii\db\ActiveRecord
{
    public static function tableName()
    {
        return '{{%send_subscr}}';
    }
    public function rules()
    {
        return [
            [['post_id', 'subscriber_id'], 'required'],
            [['post_id', 'subscriber_id'], 'integer'],
            [['end'],'boolean'],
        ];
    }
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'post_id' => 'Post ID',
            'subscriber_id' => 'Subscriber ID',
            'end' => 'End',
        ];
    }

    public function send(){
        //В таблице send_subscr выбираем строку с самым большим id поста (последний пост по которому была рассылка)
        $query = $this->find()
                    ->limit(1)
                    ->orderBy('post_id DESC')
                    ->all();
        $last_subscribe = $query[0];

        //Если в этой строке по данному посту нет неотправленных уведомлений или если массива еще нет (1-й раз только)
        if ($last_subscribe->end == 1 or count($last_subscribe) == 0) {
            //Получаем id последнего поста по которому была рассылка или ставим 0, если еще не было.
            $last_post = $last_subscribe->post_id or $last_post = 0;
            //Проверяем есть ли в таблице post посты с id большим чем id полученного нами поста из таблицы
            //SendSubscr (то есть новые посты) со статусом PUBLISH
            $post = Post::find()
                    ->limit(1)
                    ->where(['>', 'id', $last_post])
                    ->andWhere(['publish_status' => 'PUBLISH'])
                    ->all();
            //Если нет новых постов, то выходим
            if (!$post) exit;
            //Если новые посты есть, то ставим в очередь В ТАБЛИЦУ send_subscr (создаем новую строку) и выходим
            $this->post_id = $post[0]->id;
            $this->subscriber_id = 0;
            $this->end = 0;
            $this->save();
            //Выходим, а через 10 минут данный скрипт будет снова запущен, и уже пойдёт непосредственно рассылка писем
            exit;
        }

        //Сюда выполнение доходит если есть незаконченные рассылки
        //Получаем id подписчика, которому было отправлено письмо в последний раз
        $last_id = $last_subscribe->subscriber_id;
        //В таблице ПОДПИСЧИКОВ получаем все строки, у которых id > id последнего подписчика из таблицы SendSubscr,
        //то есть которым не отправлено еще уведомление
        $subscriptions = Subscription::find()
                        ->where(['>', 'id', $last_id])
                        ->all();
        $max_count = count($subscriptions);
        //Будем отправлять за 1 раз 10 писем, но если подписчиков < 10, то ставим столько, сколько их.
        if ($max_count > 10) $max_count = 10;
        //перебираем подписчиков, отправляем им письма
        foreach ($subscriptions as $key => $sub){
            //получаем id строки в таблице subscription, он же  номер подписчика
            $subscriber_id = $sub->id;

         /* Метод отправки сообщения.
            Можно использовать данные подписчика: 
            $sub->email;
            $sub->addtime;
            ID поста для ссылки на страницу новой статьи - $last_subscribe->post_id */ 
            $this->sendSub($sub->email, $last_subscribe->post_id);
            //Если достигло максимума (10) отправок, то устанавливаем в ячейку subscriber_id номер текущего
            //подписчика в строке с текущей рассылкой и выходим из цикла    
            if ($key >= ($max_count-1)) {
                $send_subscr = self::findOne($last_subscribe->id);
                $send_subscr->subscriber_id = $subscriber_id;
                $send_subscr->update();
                break;
            }
        }
        //Если осталось менее 10 подписчиков которым еще не отправлено уведомление,
        //закрываем строку с текущей рассылкой, В ТАБЛИЦЕ send_subscr ставим `end`='1'  в строке с текущей рассылкой 
        if(count($subscriptions) <= $max_count)    {
            $send_subscr = self::findOne($last_subscribe->id);
            $send_subscr->end = 1;
            $send_subscr->update();
        }    
    }

    public function sendSub($email,$post_id){
        $home_url = 'http://yoursite.com';
        //Формирование ссылки на страницу поста
        $link = 'post/view?id=';
        $full_link = $link.$post_id;
        $url = \common\models\Sef::findOne(['link' => $full_link])->link_sef;
        $post_url = $home_url.'/'.$url.'.html';
        $msg = "Здравствуйте! Вы подписаны на рассылку уведомлений о новых статьях по WEB-программированию на сайте $home_url. Сообщаем, что опубликована новая статья. Для просмотра перейдите на $post_url";
        $msg_html  = "<html><body>";
        $msg_html .= "<h4>Здравствуйте! Вы подписаны на рассылку уведомлений о новых статьях по WEB-программированию на сайте " . $home_url . "</h4>\r\n";
        $msg_html .= "<p><strong>Сообщаем, что опубликована новая статья. Для просмотра перейдите на </strong><a href='". $post_url ."'>$post_url</a></p>\r\n";
        $msg_html .= "</body></html>";
        Yii::$app->mailer->compose()
            //->setFrom('[email protected]') //e-mail админа, не указываем, если указано в common\config\main-local.php
            ->setTo($email) // кому отправляем - реальный адрес куда придёт письмо формата [email protected]
            ->setSubject('Уведомление о новой WEB-статье') // тема письма
            ->setTextBody($msg) // текст письма без HTML
            ->setHtmlBody($msg_html) // текст письма с HTML
            ->send();    
    }
}

Тут нас больше всего интересует метод send(), который при каждом запуске скрипта проверяет наличие новые постов на нашем сайте и добавляет их в очередь на рассылку. Далее вызывается метод sendSub(), который и отправляет письма используя для этого стандартный класс Yii2 Mailer. При этом за 1 раз будет отправлено только 10 писем, чтобы обойти ограничение хостингов.

Таким образом, скрипт можно запускать (автоматически), например раз в 10 минут или раз в час (в зависимости от кол-ва подписчиков) и он будет отправлять письма с перерывами, а когда отправит все, проверит, нет ли в БД новых постов. Если есть — добавляет в таблицу новую строку и начинает рассылку опять.

В методе sendSub() мы из id поста формируем полную ссылку на страницу и сохраняем в переменную $post_url. У меня каждая статья имеет буквенное название (алиас) с префиксом html на конце, поэтому я получаю его из таблицы Sef. Вы можете подстроить под себя, главное, чтобы в переменную $post_url попадала ссылка на данный пост, чтобы посетитель сайта, получив письмо смог перейти по ней. Как создать ЧПУ ссылку с буквенными названиями страниц читайте тут.

Создание контроллера.

В папке console\controllers создайте файл SendController.php с таким содержимым:

<?php
namespace console\controllers;
 
use Yii;
use yii\console\Controller;
use console\models\SendSubscr;
 
 
class SendController extends Controller
{
    public $defaultAction = 'mail';
 
    public function actionMail(){    
        $model = new SendSubscr();
        $model->send(); 
        return 0;
    }
}

Тут все просто — одно действие actionMail(), в котором создаем объект класса модели SendSubscr() и вызывается метод send(). Для удобства назначаем наш единственный метод действием по-умолчанию указанием переменной $defaultAction. В консольном приложении принято использовать код возврата. Ноль означает, что команда выполнена удачно.

Функционал рассылки готов, для запуска нужно ввести в консоли:

yii send

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

Настройка задачи cron для отложенной рассылки писем — База знаний WebAsyst

Для эффективного использования приложения WebAsyst Почта рекомендуется настроить расписание выполнения отправки сообщений с заданной периодичностью. На серверах с UNIX-подобными операционными системами для этого используется планировщик cron.

Преимущества использования планировщика:

  • возможность отложенной отправки писем;
  • автоматическая досылка массового сообщения остальным адресатам, если рассылка прервалась, например, из-за превышения технических ограничений, установленных хостинг-провайдером.

Совет: автоматическая досылка массовых сообщений в приложении WebAsyst Почта может быть полезна, если из-за ограничений хостинг-провайдера не срабатывает отправка новостей в приложении WebAsyst Shop-Script.

Для настройки задания cron необходимо знать путь к исполняемому файлу интерпретатора PHP и путь к директории, в которой установлен WebAsyst, чтобы получить доступ к скрипту автоматического запуска задач kernel/includes/robots/launcher.php.

Ниже приведено подробное описание процесса настройки на разных типах серверов.

Внимание: пользователям веб-сервисов WebAsyst не нужно выполнять инструкции, описанные в этой статье.

UNIX/Linux/FreeBSD

  1. Исходные данные:
    • PHP установлен в директории /usr/local/bin
    • WebAsyst установлен в директории /var/www
  2. Запустите команду crontab, которая ответственна за запуск команд с заданной периодичностью:
    crontab -u user -e

    Вместо user нужно указать имя системного пользователя, от имени которого выполняется задание. С учетом параметров в данном примере добавьте следующую команду (в одну строку):

    2 * * * * /usr/local/bin/php /var/www/kernel/includes/robots/launcher.php

    Здесь 2 * * * * означает, что указанная далее команда должна выполняться с наступлением второй минуты каждого часа каждый день каждого месяца (если вы хотите настроить отправку писем с наступлением другой минуты каждого часа, измените соответствующим образом первое значение). Более подробно с информацией об использовании команды crontab в Unix-подобных операционных системах вы можете ознакомиться по адресу http://ru.wikipedia.org/wiki/Cron).

  3. Сохраните измененный файл и выйдите из программы, чтобы завершить создание задания.

Внимание: если WebAsyst установлен на виртуальном хостинге, можно ввести параметры настройки отложенной отправки писем в контрольной панели своего аккаунта (если эта функция предоставляется хостинг-провайдером). Порядок настройки задания cron в контрольной панели каждого хостинг-провайдера может быть различным, но в общем команда, которая должна выполняться с заданной периодичностью, должна выглядеть следующим образом (в одну строку):

{путь к исполняемому файлу PHP} launcher.php

Windows

  1. Исходные данные:
    • Исполняемый файл PHP (php.exe) находится в директории C:\\php.
    • WebAsyst установлен в директории C:\\htdocs.
  2. Выполните указанную выше команду, чтобы создать файл robot.bat. С учетом параметров в данном примере командная строка должна выглядеть следующим образом:
    C:\\php\php.exe C:\\htdocs\kernel\includes\robots\launcher.php
  3. В главном меню Windows «Пуск» перейдите в подменю Все программы -> Стандартные -> Служебные и запустите программу «Назначенные задания». В окне этой программы щелкните по ссылке «Добавить задание», чтобы открыть окно «Мастера планирования заданий».
  4. Выберите созданный ранее файл robot.bat. После этого укажите наименование для созданной задачи, например, «Ежечасная задача», и выберите периодичность ее выполнения, например, «Выполнять это задание -> ежедневно».
  5. Выберите время первого запуска программы:
    Время начала 0:02
    Выполнять это задание: ежедневно
    Дата начала: текущая дата

    В приведенном выше примере настройки значение параметра Время начала означает, что письма будут отправляться с наступлением второй минуты каждого часа (при желании можно установить любую другую минуту) каждый день начиная с текущего дня. Можно настроить отправку писем через более короткие промежутки времени, если вы продолжите настройку с помощью «Мастера планирования заданий».

  6. Введите имя и пароль пользователя системы, от имени которого будет выполняться задание.

    Внимание: если вы не введете пароль, назначенное задание может не выполняться.

  7. Чтобы настроить отложенную отправку писем через более короткие (чем одни сутки) промежутки времени — например, ежечасно — отметьте параметр «Установить дополнительные параметры после нажатия кнопки «Готово»» и нажмите «Готово». Появится новое окно, в котором необходимо открыть вкладку «Расписание» и нажать на кнопку «Дополнительно…». Отметьте параметр «Повторять задание» и выберите «Каждые -> 1 -> часов» и «Выполнять -> в течение -> 11 час. 30 мин.».
  8. Нажмите на кнопку «OK», чтобы завершить создание задания.

Важно: если необходимо установить период срабатывания задания cron с интервалом менее 1 часа, этот период не должен быть меньше значения параметра max_execution_time в конфигурации PHP. Периодичность срабатывания задания cron также должна превышать период времени, в течение которого может выполняться рассылка до достижения иных ограничений, установленных хостинг-провайдером. В противном случае часть адресатов массовой рассылки может получать одно и тоже сообщение дважды.

Подключение PHP SMS API скрипт для сайта | SMPP-протокол

Используйте платформу REDSMS для автоматической рассылки SMS-сообщений из PHP и собственных программ, WEB-сайтов и других проектов, где требуется sms API скрипт для оперативного СМС-информирования.

Интеграция клиента через SMPP-протокол к серверу позволяет автоматизировать работу по отправке смс без необходимости входа в личный кабинет.

Скачайте описание интерфейса взаимодействия по интересующему протоколу. Готовые библиотеки на разных языках программирования, в том числе PHP SMS, позволят подключиться быстро и просто.

Отправка через API-интерфейс:

HTTP API — протокол дает возможность передавать данные, обеспечивая сообщение «клиент-сервер» и работает по простой схеме «запрос-ответ», поддерживая шифрование https.

Документация

SMPP v3.4 — обеспечивает эффективную рассылку через интернет, а его главное преимущество заключается в том, что протокол предоставляет режим постоянного подключения. То есть, ваши сообщения будут передаваться с максимально высокой скоростью. При этом можно подключиться как к каналу, где идет только массовая СМС рассылка, так и к каналу транзакционных сообщений.

Скачать документацию

Обработки для 1С:

Для 1с версии 8.3

Позволяет делать отправку рассылок и прямо из программы 1с, используя базу личного кабинета или из справочника контрагентов. Доступно множество функций.

Скачать документацию

СМС для интернет-магазинов:

1С Битрикс

Позволяет быстро организовать SMS рассылку с сайта

Скачать модуль

404 — Страница не найдена

Войти

Запомнить меня • Забыли пароль?

Просмотреть корзину (0)

Переключить навигацию

  • Дом

  • Магазин

    • Просмотреть все

    • ——

    • Weebly

    • Виртуальный хостинг

    • Управляемый VPS

    • TurnKey

    • Неуправляемый VPS

    • Неуправляемый Windows VPS

    • Зарегистрируйте новый домен

    • Перенести домены к нам

  • Состояние сети

  • Связаться с нами

  • Счет

    • Авторизоваться

    • ——

    • Забыл пароль?

    ×
    Закрывать

    Название

    Загрузка…

    Загрузка …

    Закрывать

    Представлять на рассмотрение

    Отправляйте электронные письма с помощью PHP-скрипта

    Форма Nicepage поддерживает отправку электронных писем с помощью сценария PHP для экспорта в HTML, начиная с версии Nicepage 2.7.

    Скрипт PHP позволяет отправлять электронные письма без использования внешних ресурсов.Обратите внимание, что отправка писем осуществляется на стороне сервера. Следовательно, вам необходимо настроить сервер для отправки электронных писем. Следующая информация содержит информацию о том, как настроить сервер для отправки электронных писем.

    Удаленный сервер и хостинг GoDaddy

    Скрипт Nicepage использует почтовую функцию PHP. Поэтому PHP должен быть правильно установлен и настроен в файле php.ini на вашем сервере.

    Пожалуйста, прочтите дополнительную информацию о конфигурации PHP в статье 1 или статье 2.

    Обычно хостинг-провайдеры уже правильно настроили PHP. Например, отправка электронной почты по умолчанию работает на хостинге GoDaddy. Поэтому вы можете использовать сценарий PHP, созданный с помощью Nicepage.

    Настройка локального хоста

    Если вы запускаете проект на своем локальном хосте (XAMPP, WAMP) и вам нужно протестировать отправку электронной почты во время разработки, вам необходимо настроить сервер вручную.

    Пожалуйста, прочтите следующие статьи:

    Также настройте параметры «Небезопасные приложения» в настройках безопасности Google, чтобы избежать проблем с отправкой электронной почты.

    Рекомендация

    Мы рекомендуем использовать интеграцию reCAPTCHA, чтобы избежать спама, отправляемого из формы.

    Подробнее о других методах отправки формы

    Форма Nicepage поддерживает отправку электронных писем с помощью сценария PHP для экспорта в HTML, начиная с версии Nicepage 2.7.
    ! send-emails-using-php-script.png!

    Скрипт PHP позволяет отправлять электронные письма без использования внешних ресурсов. Обратите внимание, что отправка писем осуществляется на стороне сервера.Следовательно, вам необходимо настроить сервер для отправки электронных писем. Следующая информация содержит информацию о том, как настроить сервер для отправки электронных писем.

    ## Удаленный сервер и хостинг GoDaddy

    Скрипт Nicepage использует почтовую функцию PHP. Поэтому PHP должен быть правильно установлен и настроен в файле php.ini на вашем сервере.

    Прочтите дополнительную информацию о конфигурации PHP в [статье 1] (https://developernote.com/2012/07/how-i-configured-sendmail-for-php-on-ubuntu-server-12-04/) или [Статья 2] (https: // pepipost.com / tutorials / sendmail-in-php-complete-guide /).

    Обычно хостинг-провайдеры уже правильно настроили PHP. Например, отправка электронной почты по умолчанию работает на хостинге GoDaddy. Поэтому вы можете использовать сценарий PHP, созданный с помощью Nicepage.

    ## Настройка локального хоста

    Если вы запускаете проект на своем локальном хосте (XAMPP, WAMP) и вам нужно протестировать отправку электронной почты во время разработки, вам необходимо настроить сервер вручную.

    Пожалуйста, прочтите следующие статьи:

    — [Как отправить электронную почту с локального хоста с помощью PHP] (https: // www.phpflow.com/php/how-to-send-email-from-localhost-using-php/)

    — [Как отправлять почту с локального хоста XAMPP с помощью Gmail] (https://meetanshi.com/blog/send-mail-from-localhost-xampp-using-gmail/)

    Кроме того, настройте параметры «Небезопасные приложения» в настройках безопасности Google, чтобы избежать проблем с отправкой электронной почты.

    ## Рекомендация

    Мы рекомендуем использовать интеграцию [reCAPTCHA] (https://nicepage.com/doc/article/61415/recaptcha-integration), чтобы избежать спама, отправляемого из формы.Подробнее о других методах [как отправить форму] (страница: 4216)

    Отправка электронной почты с использованием Mailgun PHP API

    Это гостевое сообщение Михай Шарой, Разработчик в EDMdesigner.

    Прошло некоторое время с тех пор, как появился Mailgun PHP SDK, и мы увидели множество изменений: новые функции, новые интеграции, построенные поверх, новые конечные точки API… но ядро ​​PHP осталось прежним.Поскольку это был первый SDK для Mailgun API, у него было время развиться и пройти несколько итераций, которые упростят его использование, что мы поняли, когда попробовали.

    В этом посте мы покажем , как можно реализовать Mailgun API с помощью PHP с PEAR.

    Зачем мне нужна транзакционная электронная почта?

    Мы собираемся начать это руководство с того, что транзакционная электронная почта присутствует повсюду, и важно, чтобы мы понимали ее правильно. Если электронная почта не работает должным образом, это может означать потерю дохода для вашего бизнеса и в целом создает неприятные впечатления для клиентов.

    Как разработчик, вы всегда ищете наиболее простой (эффективный по времени) и эффективный способ решения проблемы. Вы часто добиваетесь этого, выполняя два условия:

    1. Использование внешних библиотек, применимых к вашему решению.

    2. Разработка масштабируемых приложений.

    Не нужно объяснять первое условие — вы ведь не начали бы писать ОС до того, как написали приложение, верно? В этой статье мы рассмотрим, как использовать заранее написанные пакеты для отправки электронной почты.Но теперь перейдем ко второму пункту: читайте дальше.

    Для масштабируемого дизайна здесь вам нужны такие сервисы, как Mailgun. Вы можете рассчитывать на многофункциональное решение, отвечающее требованиям для отправки больших объемов электронной почты.

    Если вы заботитесь о доставке (а вам следует это делать), Mailgun предлагает высокую надежность, поскольку он разработан для очень хорошей обработки транзакционной электронной почты. Вы можете настроить несколько доменов и выбрать, хотите ли вы делиться IP-адресами или создавать собственную репутацию. Чтобы защитить заголовки электронной почты, Mailgun требует, чтобы в учетную запись были добавлены DKIM и SPF и чтобы они прошли проверку на уровне аутентификации и согласования.Все это работает вместе, чтобы помочь вам с доставкой электронной почты.

    Теперь о хорошем: настраивает сценарий оболочки PHP для Mailgun . Сначала мы воспользуемся диспетчером пакетов, а затем рассмотрим примеры его применения.

    Настройка вашей среды

    PEAR — это инициатива сообщества, которая позволяет нам повторно использовать компоненты кода PHP, в то время как зависимый код также добавляется и поддерживается.

    Для продолжения вам понадобится PHP и менеджер пакетов.Если вы используете Linux, их лучше всего устанавливать с помощью Debian Advanced Package Manager (APT).

    Хотя PEAR — более старое решение, оно все еще широко используется и сокращенно от PHP Extension and Application Repository. Судя по установленной версии PHP, у вас, вероятно, уже есть PEAR. Вы можете проверить, запустив команду pear без аргументов. Если вы получили предупреждение о том, что в вашей системе его нет, просто запустите: sudo apt install php-pear. Теперь мы готовы установить сторонний код PHP с PEAR.

    Если вы следуете этой статье путем написания кода, — это та точка, где вам следует открыть свою учетную запись Mailgun , чтобы получить доступ к API . Если вы застряли, просто ознакомьтесь с этими советами по началу работы.

    Настройка проекта

    Шаги с PEAR применяются следующим образом:

    1. Установка зависимостей проекта и включение пакетов путем требования основного класса или скрипта vendor / autoloader.php

    2. Предоставить переменные, связанные с API

    3. Создание экземпляра класса / клиента Mail

    4. Вызов функции для отправки электронного письма (я)

    Просто, верно?

    Использование PEAR

    Шаг 1: Установите зависимости проекта

    Мы можем установить пакет Mail, набрав sudo pear install Mail .Следующим шагом после завершения установки является включение этого параметра в файл сценария:

    require_once "Mail.php";

    Сэкономьте время и сделайте так, как предлагает наш шаблон, а затем укажите переменные, специфичные для API.

    Шаг 2: Предоставьте входные переменные

    Если вы перейдете на панель управления API, вы можете найти эти необходимые фрагменты информации на вкладке домена:

    Нам нужен хост , пользователь учетной записи и пароль переменных, и порт для использования :

    1 $ host = "smtp.mailgun.org ";

    2 $ username =" postmaster @ sandbox21a78f8 ... 3eb160ebc79.mailgun.org ";

    3 $ password =" 75b958a6a0b ... dd417c80133 ";

    4 $ port =" 587 ";

    Мы используем SMTP-соединение для отправки электронной почты через нашу учетную запись Mailgun.

    Шаг 3: Создаем экземпляр клиента

    Мы собираем вышеуказанные параметры в массив и создаем экземпляр класса Mail следующим образом:

    1 $ params = array ('host' => $ host,

    2 'port' => $ port,

    3 'auth' => true,

    4 'username' => $ username,

    5 'password' => $ пароль);

    6

    7 $ smtp = Mail :: factory ('smtp', $ params);

    Шаг 4: позвонить клиенту

    Последний шаг — вызвать send () класса Mail , и все готово:

    1 $ mail = $ smtp-> send ($ to, $ head ers, $ email_body);

    Здесь переменная от $ до содержит значение для адреса получателя, а переменная $ headers представляет собой массив, содержащий дополнительные поля для доставки.

    На этом этапе вы можете проверить полный окончательный код:

    1

    2require_once "Mail.php";

    3

    4 $ host = "smtp.mailgun.org";

    5 $ username = "postmaster @ sandbox21a78f8 ... 3eb160ebc79.mailgun.org";

    6 $ пароль = "75b958a6a0b ... dd417c80133";

    7 $ порт = "587";

    8 $ to = "[email protected]";

    9

    10 $ email_from = "[email protected]";

    11 $ email_subject = "Отличная тема";

    12 $ email_body = "Это тело сообщения";

    13 $ email_address = "replyto @ sender.com ";

    14 $ content =" text / html; charset = utf-8 ";

    15 $ mime =" 1.0 ";

    16

    17 $ headers = array ('From' => $ email_from,

    18'To '=> $ to,

    19 'Subject' => $ email_subject,

    20'Reply-To '=> $ email_address,

    21'MIME-Version' => $ mime,

    22'Content-type '=> $ content);

    23

    24 $ params = array ('host' => $ host,

    25'port '=> $ port,

    26'auth' => true,

    27'username '=> $ username,

    28'password '=> $ password);

    29

    30 $ smtp = Mail :: factory (' smtp ', $ params);

    31 $ mail = $ smtp-> send ($ to, $ headers). , $ email_body);

    32

    33if (PEAR :: isError ($ mail)) {

    34echo ("

    ".$ mail-> getMessage (). "

    ");

    35} else {

    36echo ("

    Сообщение успешно отправлено!

    ");

    37}

    Вы можете скачать полный исходный код здесь.

    Далее, если вы все настроили, вы можете попробовать запустить скрипт: php mailer.php.

    Вы запускаете его и получаете ужасную трассировку стека ошибок! Внимательно изучите его:

    Неустранимая ошибка PHP: Неперехваченная ошибка: класс «Net_SMTP» не найден в / usr / share / php / Mail / smtp> php: 366.

    Это означает, что мы забыли добавить еще одну зависимость проекта, которая необходима для использования PEAR Mail. Запустите sudo pear install Net_SMTP и попробуйте еще раз!

    Результат:

    Сообщение успешно отправлено!

    Если вы последовали примеру, то ваше сообщение должно было быть доставлено в указанный почтовый ящик, и я беззвучно хлопаю вам в ладоши. Браво!

    Заключение

    Мы видели пример сценария для начала использования Mailgun с менеджером пакетов PEAR, а также создали сценарии PHP для отправки электронной почты с помощью SMTP и HTTP API. Но есть и другие варианты, которые вы можете использовать, если PEAR вам не подходит. Фактически вы могли бы воспроизвести тот же результат с помощью Composer, и Mailgun подробно рассказывал об этом ранее в блоге.

    И, конечно же, если вы хотите улучшить свои навыки работы с PHP, это несколько моих любимых ресурсов, которые я бы порекомендовал для отправки электронной почты с помощью PHP и работы с HTML-кодом электронной почты в целом.

    Многие сообщения электронной почты отправляются из сценариев PHP на сервере Plesk. Как найти домены, на которых работают эти скрипты, если используется Postfix?

    Plesk для Linux

    FR: ППМ-2148

    kb: как сделать

    ABT: Группа A

    Вопрос

    Многие сообщения электронной почты отправляются из сценариев PHP на сервере.Как найти домены, на которых работают эти скрипты, если используется Postfix?

    Ответ

    Предупреждение: , если у вас нет доступа по SSH, обратитесь к поставщику услуг или администратору сервера.

    Примечание: Эта статья применима только к почтовому серверу Postfix.
    Если используется почтовый сервер Qmail, см. Раздел Многие сообщения электронной почты отправляются из сценариев PHP на сервере Plesk. Как найти домены, на которых работают эти скрипты, если используется Qmail?

    Существует способ определить, из какого каталога запускается PHP-скрипт, отправляющий почту.

    Примечание: в зависимости от операционной системы и версии Plesk пути могут незначительно отличаться. Например: для Debian и Ubuntu используйте / usr / sbin / sendmail вместо /usr/sbin/sendmail.postfix в приведенных ниже командах.

    Щелкните раздел, чтобы развернуть его

    RHEL / CentOS

    1. Подключиться к серверу через SSH.

    2. Создайте сценарий /usr/sbin/sendmail.postfix-wrapper со следующим содержанием:

      CONFIG_TEXT: #! / Bin / sh
      (echo X-Additional-Header: $ PWD; cat) | tee -a / var / tmp / mail.отправить | /usr/sbin/sendmail.postfix-bin «$ @»

    3. Создайте файл журнала /var/tmp/mail.send и установите разрешения a + rw . Сделайте оболочку исполняемой, переименуйте старый файл sendmail.postfix и свяжите его с новой оболочкой:

      # touch /var/tmp/mail.send
      # chmod a + rw /var/tmp/mail.send
      # chmod a + x /usr/sbin/sendmail.postfix-wrapper
      # mv / usr / sbin / sendmail .postfix /usr/sbin/sendmail.postfix-bin
      # ln -s / usr / sbin / sendmail.постфикс-оболочка /usr/sbin/sendmail.postfix

    4. Подождите некоторое время для сбора данных: 30-60 мин.

    5. Переименуйте sendmail.postfix-bin обратно в /usr/sbin/sendmail.postfix :

      # mv /usr/sbin/sendmail.postfix /root/backup__sendmail.postfix
      # mv /usr/sbin/sendmail.postfix-bin /usr/sbin/sendmail.postfix

      Примечание: Файл /var/tmp/mail.send не поворачивается автоматически, и не рекомендуется оставлять его на долгое время, так как он может занять дисковое пространство сервера.Удаляйте и создавайте новый файл /var/tmp/mail.send после каждой проверки.

    6. Проверьте файл /var/tmp/mail.send . Должны быть строки, начинающиеся с «X-Additional-Header», указывающие на папки домена, в которых находятся сценарии, отправляющие почту.

      Каталоги, из которых запускаются почтовые PHP-скрипты, можно увидеть с помощью следующей команды:

      # grep X-Additional /var/tmp/mail.send | grep `cat /etc/psa/psa.conf | grep HTTPD_VHOSTS_D | sed -e ‘s / HTTPD_VHOSTS_D //’ ‘

      Примечание: Если вывод приведенной выше команды не отображается, это означает, что с помощью функции PHP mail не было отправлено письмо из каталога виртуального хоста Plesk.

      Обычно это означает, что одна из учетных записей электронной почты была взломана. Проверьте количество попыток входа в систему:

      # zgrep -c ‘sasl_method = LOGIN’ / var / log / maillog *
      / var / log / maillog: 221000
      /var/log/maillog.processed:362327
      /var/log/maillog.processed.1.gz : 308956

      Если отображается необычно большое количество попыток входа в систему, скорее всего, учетные записи были скомпрометированы. Попробуйте идентифицировать эти учетные записи следующим образом:

      # zgrep -h ‘sasl_method’ / var / log / maillog * | вырезать -d » -f9 | вырезать -d = -f2 | сортировать | uniq -c | sort -nr
      891574 sasl_username = admin @ example.com

    7. Чтобы остановить рассылку спама, измените пароли для скомпрометированных учетных записей и перезапустите службу Postfix.

      Также см. Руководство администратора

    Щелкните раздел, чтобы развернуть его

    Debian / Ubuntu

    1. Подключиться к серверу через SSH.

    2. Создайте сценарий / usr / sbin / sendmail-wrapper со следующим содержимым:

      CONFIG_TEXT: #! / Bin / sh
      (echo X-Additional-Header: $ PWD; cat) | tee -a / var / tmp / mail.отправить | / usr / sbin / sendmail-bin «$ @»

    3. Создайте файл журнала /var/tmp/mail.send и установите разрешения a + rw . Сделайте оболочку исполняемой, переименуйте старый файл sendmail и свяжите его с новой оболочкой:

      # touch /var/tmp/mail.send
      # chmod a + rw /var/tmp/mail.send
      # chmod a + x / usr / sbin / sendmail-wrapper
      # mv / usr / sbin / sendmail / usr / sbin / sendmail-bin
      # ln -s / usr / sbin / sendmail-wrapper / usr / sbin / sendmail

    4. Подождите некоторое время для сбора данных: 30-60 мин.

    5. Переименуйте sendmail-bin обратно в / usr / sbin / sendmail :

      # mv / usr / sbin / sendmail / root / backup__sendmail
      # mv / usr / sbin / sendmail-bin / usr / sbin / sendmail

      Примечание: Файл /var/tmp/mail.send не поворачивается автоматически, и не рекомендуется оставлять его на долгое время, так как он может занять дисковое пространство сервера. Удаляйте и создавайте новый файл /var/tmp/mail.send после каждой проверки.

    6. Проверьте файл /var/tmp/mail.send . Должны быть строки, начинающиеся с «X-Additional-Header», указывающие на папки домена, в которых находятся сценарии, отправляющие почту.

      Каталоги, из которых запускаются почтовые PHP-скрипты, можно увидеть с помощью следующей команды:

      # grep X-Additional /var/tmp/mail.send | grep `cat /etc/psa/psa.conf | grep HTTPD_VHOSTS_D | sed -e ‘s / HTTPD_VHOSTS_D //’ ‘

      Примечание: Если вывод приведенной выше команды не отображается, это означает, что с помощью функции PHP mail не было отправлено письмо из каталога виртуального хоста Plesk.

      Обычно это означает, что одна из учетных записей электронной почты была взломана. Проверьте количество попыток входа в систему:

      # zgrep -c ‘sasl_method = LOGIN’ / var / log / maillog *
      / var / log / maillog: 221000
      /var/log/maillog.processed:362327
      /var/log/maillog.processed.1.gz : 308956

      Если отображается необычно большое количество попыток входа в систему, скорее всего, учетные записи были скомпрометированы. Попробуйте идентифицировать эти учетные записи следующим образом:

      # zgrep -h ‘sasl_method’ / var / log / maillog * | вырезать -d » -f9 | вырезать -d = -f2 | сортировать | uniq -c | sort -nr
      891574 sasl_username = admin @ example.com

    7. Чтобы остановить рассылку спама, измените пароли для скомпрометированных учетных записей и перезапустите службу Postfix.

      Также см. Руководство администратора

    Отправка и получение почты с помощью API почты

    Используйте API почты для отправки и получения почты.

    Для получения информации о том, кто может отправлять почту, и инструкции по отправке массовых рассылок, см.
    Обзор API почты.

    Это решение больше не рекомендуется: На этой странице описано, как использовать
    устаревшая служба App Engine. Приложения, использующие эту службу, могут работать только в
    Среда выполнения PHP 5 и ее необходимо обновить до
    рекомендуемое решение перед переходом на

    PHP 7

    время выполнения.

    Прежде чем начать

    Вы должны зарегистрировать своих отправителей электронной почты в качестве авторизованных отправителей. Для большего
    информацию см.
    кто может отправлять электронную почту.

    Отправка почты

    Встроенный PHP mail ()
    может отправлять электронные письма через App Engine Mail API.Это должно хорошо работать с
    существующий код, если он соответствует ограничениям, перечисленным в
    Отправка почты.

    Кроме того, вы можете напрямую обращаться к Mail API:

    Получение почты

    Вы можете настроить свое приложение на получение входящей электронной почты на адреса, указанные ниже.
    формат:

      [email protected]
      

    Примечание: Даже если ваше приложение развернуто в личном домене, вы не можете получать электронную почту
    отправлено на адреса в этом домене.

    Для получения электронной почты:

    1. Включите входящую почту в файле app.yaml вашего приложения. Добавьте в
      inbound_services :

    2. В файле конфигурации создайте сопоставления из путей URL, которые представляют
      адреса электронной почты обработчикам в коде вашего приложения. Выкройка /_ah/mail/.+
      соответствует всем входящим адресам электронной почты:

    3. Реализуйте код для обработчиков, указанных в коде приложения.

      Вы можете прочитать данные MIME из
      php: // ввод и анализ электронной почты
      контент с помощью Mailparse.

    Postfix: Как определить, что скрипт PHP рассылает спам

    Ваш домен размещен на сервере Linux с использованием Postfix для отправки электронной почты и занесен в черный список для спама ?

    У вас, вероятно, есть вредоносный скрипт , отправляющий большое количество писем прямо с сервера … ну, враг у вас дома!

    Если вашим демоном исходящей почты (то есть программным обеспечением, используемым для отправки электронных писем) является Postfix, вы можете определить источник спама всего за несколько простых шагов.

    Решение проблемы может быть таким же простым, хотя в большинстве случаев требует дальнейшего изучения.

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

    Первое, что нужно сделать, это войти на свой почтовый сервер с пользователем с правами администратора (sudo) и убедиться, что файл php.ini вашего домена (и / или глобального сервера) содержит следующую строку:

     мейл.add_x_header = На 

    , без которого то, что мы будем делать дальше, не даст никакого полезного результата.

    После проверки вам нужно будет проверить очередь почты с помощью команды:

     mailq 

    В первом столбце вы увидите уникальный идентификатор каждого исходящего письма, например:

     DA5E8647235C 369763 ср 29 мар 16:30:19 [email protected]
     (подключитесь к somedomain.com [123.123.123.123]: 25: в соединении отказано)
     [email protected] 

    После того, как одно из этих писем определено как спам, мы собираемся изучить его детали с помощью команды:

     postcat -q  

    , и мы ищем строку, начинающуюся с « X-PHP-Originating-Script » (присутствует благодаря файлу php.ini, указанная выше).

    Например, используя команду grep, чтобы избежать необходимости вручную прокручивать содержимое электронной почты:

     postcat -q DA5E8647235C | grep X-PHP-исходный-скрипт 

    мы могли бы получить такой вывод:

     X-PHP-исходный-скрипт: 45: badmailer.php 

    Число 45 — это UID, который представляет собой идентификатор пользователя Linux, запустившего сценарий, а badmailer.php — это сценарий, отправляющий спам-сообщения.

    На этом этапе вам просто нужно найти badmailer.php, удалите его или очистите, и, прежде всего, чтобы понять, как он был загружен на ваш сервер и запущен оттуда.

    Если ваш заголовок не содержит строки X-PHP-Originating-Script, скорее всего, ваша учетная запись электронной почты была взломана и используется для «законной» рассылки спама с вашего сервера. В этом случае, если было обнаружено исходящее письмо со спамом, вы должны запустить следующую команду, чтобы узнать, какая учетная запись использовалась для аутентификации:

     postcat -q DA5E8647235C | grep sasl_username 

    Вы получите следующий результат:

     named_attribute: sasl_username = info @ nullalo.com 

    В этом примере вы должны немедленно изменить пароль учетной записи [email protected] на более надежный (длинный, со специальными, прописными и строчными буквами).

    Еще одна вещь, которую вы можете сделать, чтобы сдержать повреждение, — это очистить очередь исходящей почты с помощью следующей команды:

     postsuper -d ВСЕ 

    Если, однако, важные электронные письма также помещены в очередь помимо спама, вам придется удалять нежелательные электронные письма по отдельности с помощью команды:

     postsuper -d  

    Итак, в примере мы запустим следующую команду:

     postsuper -d DA5E8647235C 

    Вот и все … если у вас возникнут проблемы, просто оставьте комментарий к этой статье, и мы постараемся вам помочь!

    Как использовать Sendmail с PHP

    HostGator стремится упростить перенос вашего сайта на новую учетную запись хостинга.Мы можем передать файлы веб-сайтов, базы данных, скрипты и один бесплатный перенос регистрации домена.

    Что дает мне право на бесплатный перевод?

    HostGator предоставляет бесплатные переводы для новых учетных записей в течение 30 дней после регистрации , а также для новых обновленных учетных записей. Для обновленных учетных записей это должно быть межсерверное обновление, чтобы соответствовать требованиям. Обратите внимание, что аккаунты с пониженной версией не имеют права на бесплатные переводы.

    В зависимости от типа учетной записи, которую вы регистрируете, мы предлагаем разное количество бесплатных переводов.Пожалуйста, обратитесь к таблице ниже, чтобы увидеть, что мы включаем в новые пакеты.

    Полные передачи cPanel — это количество включенных передач cPanel в cPanel.

    Макс. Ручные переводы — это максимальное количество ручных переводов, включенных в вашу учетную запись.

    Всего бесплатных переводов — это общее количество веб-сайтов, которые мы переместим для вас.

    907 1

    ? )

    Тип счета Всего бесплатных переводов Полный перевод cPanel Макс.Ручные переводы
    ? Общий 1 1 2 1
    ? Торговый посредник 30 30 2 Безлимитный 2 10 на уровень VPS
    ? Выделенный (базовый) Безлимитный 1 Безлимитный 2 75
    Безлимитный 1 Безлимитный 2 100

    1 Хотя мы можем делать неограниченные переводы cPanel на cPanel для вас, в зависимости от вашей учетной записи, у вас будет ограниченное количество ручных переводов .

    2 Полная передача cPanel включает все домены, дополнительные домены, поддомены и настройки cPanel. Это также будет включать вашу электронную почту и учетные записи электронной почты.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *