PHP Скрипт отложенной рассылки писем. PHP Скрипт отложенной рассылки писем Запуск php скрипта из cron

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

Так почему бы не написать простенький движок для своей рассылки и отсылать письма своими силами?

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

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



Итак, в окне для ввода текста, с именем email и видимой длиной в 30 символов, будет вводиться адрес электронной почты. После нажатия на кнопку с надписью подписаться, адрес будет передан скрипту ras.php для занесения в базу рассылки.

Далее давайте рассмотрим скрипт ras.php который будет сохранять адрес почты в файле, выводить сообщение о результате и формы для подписки и отписки. Скрипт можно исполнить совсем просто - сохранить адрес, вывести соответствующее сообщение. Но могут возникнуть проблемы: кто-то может случайно подписаться несколько раз, кто-то может допустить опечатку и внесли в поле адреса недопустимый символ или нарочно ввести белиберду. В таком случае база рассылки будет загрязняться, а неверные адреса станут приводить к ошибкам в работе скрипта. Вывод ясен - перед сохранением адреса следует проверить его на соответствие стандартам имен адресов электронных почтовых ящиков, а также на наличие в базе рассылки. Для того чтоб не рассматривать код по частям, я дам комментарии в самом коде:

$file = "maillist.txt "; // файл, содержащий адреса

error_reporting(0); // запрещаем вывод сообщений о возможных ошибках

Function test_mail($char ) // функция, проверяющая реальность адреса
{
$flag = false ;
if(eregi("^[_\.0-9a-z-]+@([-0-9a-z\.]+)\.({2,3}$)", $char )) $flag = true ;
if ($flag ) return true ;
else return false ;
}

$email = trim(strtolower($email )); // получаем введеный в
// форму адрес с
// символами в нижнем регистре

Function copy_mail($char ) // проверяем, есть ли такой адрес в базе
{
$file = "maillist.txt ";
$list = file($file );
for ($i = 0; $i < sizeof ($list ); $i++ )
if ($char == trim($list [$i ])) $flag = true ;

If ($flag ) return true ;
else return false ;
}

Echo "

";

If (is_file($file )) // далие проверяем адрес вышеописаными функциями
{
$maillist = file($file );
if (!$email == "") {
if (test_mail($email )) {
if (!copy_mail($email ))
{
$maillist = "\n$email ";
print "E-mail: $email добавлен базу рассылки

";
}
else print "E-mail: $email уже есть в базе";
}
else print "E-mail: $email не сушествует";
}
else print "";
}
else print "Не найден файл $file ! Пожалуйста сообщите мне о ошибке.";
// выводи на екран форму с предложением подписки и отписки
echo "
Подписаться на рассылку
";
echo "Введите mail:
";

Echo "



";
echo "Отписаться от рассылки
Введите mail:";
echo "
";
// если пользователь решил отписаться - удаляем введеный адрес
$flag = false ;
$fw = fopen($file , "w ");
for ($i = 0; $i < sizeof ($maillist ); $i++ )
if (trim(strtolower($delmail )) == trim(strtolower($maillist [$i ]))) {
if (!$delmail == "")
{
print "
$delmail удален из базы рассылки
";
$flag = true ;
}
}
else fputs($fw , $maillist [$i ]); // введеного адреса в базе нет
fclose($fw );
if (!$delmail == "")
if (!$flag ) print "
$delmail не найден в базе рассылки
";
?>

Вот наш код сохранения и удаления адресов готов. Теперь надо позаботится о средствах отправки почты. Не будем же мы через Аутлук отсылать?. Как уже говорилось, защитим возможность отправки паролем, который будем вводить на специальной форме:




Поле для ввода с именем pass и будет служить для ввода пароля. После нажатия на кнопку с надписью войти, пароль будет передан скрипту out.php :

$subject = "Рассылка моего сайта"; // тема рассылки
$fromemail = "мое@мыло"; // ваш адрес (для ответов)
$file = "maillist.txt "; // список адресов подписчиков
$password = "secretpassword"; // ваш пароль для рассылки

if ($pass == $password ) // если пароль ввели правильный
// то выводим форму с полями для ввода:
// адрес отправителя, текст письма, тело письма
// кнопку для отправления
// после нажатия на кнопку, передаем данные скрипту
send.php
{
echo "
";
echo "адрес отправителя

";
echo "тема письма
";
echo "
текст письма:
";
echo "
";
print "В базе". sizeof($maillist) ." адресов

";
for ($i = 0; $i < sizeof ($maillist ); $i ++) print $maillist [$i ]. "
";
}
// если пароль неверный - просим ввести еще раз
else echo "
";

Осталось рассмотреть только один скрипт - тот самый, который будет отсылать почту:

$odr = "\n\n\n Для отказа от подписки воспользуйтесь ссылкой\n";
$homepage = "http://адрес.сайта/ras.php";

Error_reporting(0);
$subject = $HTTP_POST_VARS ["subject"];
$body = $HTTP_POST_VARS ["body"];
$subject = stripslashes($subject );
$body = stripslashes($body );

$file = "maillist.txt ";
$maillist = file($file );

Print "В базе". sizeof($maillist ) ." адресов
";
for ($i = 0; $i < sizeof ($maillist ); $i ++)
{
#echo($maillist [$i ]."
");
mail($maillist [$i ], $subject ,
$body ."$odr $homepag ?delmail=$maillist [$i ]",
"From: $fromemail ");
}
echo "Готово!";

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

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

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

Разумеется, говоря о полной свободе, я не в коем случае не имел в виду принудительную подписку? или, проще говоря, спам. Если вдруг кто решит рассылать спам таким образом, то пусть учтет что на него сразу начнут жаловаться администрации хостинга. И неважно платный хостинг или нет, если администрация хостинга заметит подобные действия, она аннулирует предоставление своих услуг вам без возмещения убытков. А с халявиными хостингами еще туже. Во-первых, надо просить персональное разрешения у администрации на открытие данной функции, во-вторых, как правило, стоит лимит в 1 письмо за минуту. Так что господа спамеры, обломайтесь:)

На такой вот веселой ноте и закончим.




Есть еще вопросы или что-то непонятно - добро пожаловать на наш

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

Так почему бы не написать простенький движок для своей рассылки и отсылать письма своими силами?

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

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


Итак, в окне для ввода текста, с именем email и видимой длиной в 30 символов, будет вводиться адрес электронной почты. После нажатия на кнопку с надписью подписаться, адрес будет передан скрипту ras.php для занесения в базу рассылки.

Далее давайте рассмотрим скрипт ras.php который будет сохранять адрес почты в файле, выводить сообщение о результате и формы для подписки и отписки. Скрипт можно исполнить совсем просто - сохранить адрес, вывести соответствующее сообщение. Но могут возникнуть проблемы: кто-то может случайно подписаться несколько раз, кто-то может допустить опечатку и ввести в поле адреса недопустимый символ. В таком случае база рассылки будет загрязняться, а неверные адреса станут приводить к ошибкам в работе скрипта. Вывод ясен - перед сохранением адреса следует проверить его на соответствие стандартам имен адресов электронных почтовых ящиков, а также на наличие в базе рассылки. Для того чтоб не рассматривать код по частям, я дам комментарии в самом коде:

$file = "maillist.txt"; // файл, содержащий адреса error_reporting(0); // запрещаем вывод сообщений о возможных ошибках function test_mail($char) // функция, проверяющая реальность адреса { if (preg_match("/^[_\.0-9a-z-]+@([-0-9a-z\.]+)\.({2,3}$)/", $char)) return true; return false; } // получаем введеный в форму адрес с символами в нижнем регистре $email = trim(strtolower($email)); function copy_mail($char) // проверяем, есть ли такой адрес в базе { global $file; $list = file($file); for ($i = 0; $i < sizeof ($list); $i++) if ($char == trim($list[$i])) return true; return false; } echo "

"; if (is_file($file)) // далее проверяем адрес вышеописаными функциями { $maillist = file($file); if (!$email == "") { if (test_mail($email)) { if (!copy_mail($email)) { $maillist = "\n$email"; print "E-mail: $email добавлен базу рассылки
"; } else print "E-mail: $email уже есть в базе"; } else print "E-mail: $email не сушествует"; } else print ""; } else print "Не найден файл $file ! Пожалуйста сообщите мне о ошибке."; // выводим на экран форму с предложением подписки и отписки echo "
Подписаться на рассылку
"; echo "Введите mail:
"; echo "


"; echo "Отписаться от рассылки
Введите mail:"; echo "
"; // если пользователь решил отписаться - удаляем введеный адрес $flag = false; $fw = fopen($file, "w"); for ($i = 0; $i < sizeof ($maillist); $i++) if (trim(strtolower($delmail)) == trim(strtolower($maillist[$i]))) { if (!$delmail == "") { print "
$delmail удален из базы рассылки
"; $flag = true; } } else fputs($fw, $maillist[$i]); // введеного адреса в базе нет fclose($fw); if (!$delmail == "") if (!$flag) print "
$delmail не найден в базе рассылки
";

Вот наш код сохранения и удаления адресов готов. Теперь надо позаботится о средствах отправки почты. Не будем же мы через Outlook отсылать!?. Как уже говорилось, защитим возможность отправки паролем, который будем вводить на специальной форме:


Поле для ввода с именем pass и будет служить для ввода пароля. После нажатия на кнопку с надписью войти, пароль будет передан скрипту out.php:

$subject = "Рассылка моего сайта"; // тема рассылки $fromemail = "мое@мыло"; // ваш адрес (для ответов) $file = "maillist.txt"; // список адресов подписчиков $password = "secretpassword"; // ваш пароль для рассылки if ($_POST["pass"] == $password) // если пароль ввели правильный // то выводим форму с полями для ввода: // адрес отправителя, текст письма, тело письма // кнопку для отправления // после нажатия на кнопку, передаем данные скрипту send.php { echo "


"; echo "адрес отправителя

"; echo "тема письма
"; echo "
текст письма:
"; echo "
"; print "В базе". sizeof($maillist) ." адресов

"; for ($i = 0; $i < sizeof ($maillist); $i++) print $maillist[$i]. "
"; } // если пароль неверный - просим ввести еще раз else echo "
";

Осталось рассмотреть только один скрипт - тот самый, который будет отсылать почту:

$odr = "\n\n\n Для отказа от подписки воспользуйтесь ссылкой\n"; $homepage = "http://адрес.сайта/ras.php"; error_reporting(0); $subject = $HTTP_POST_VARS["subject"]; $body = $HTTP_POST_VARS["body"]; $subject = stripslashes($subject); $body = stripslashes($body); $file = "maillist.txt"; $maillist = file($file); print "В базе". sizeof($maillist) ." адресов
"; for ($i = 0; $i < sizeof ($maillist); $i++) { #echo($maillist[$i]."
"); mail($maillist[$i], $subject, $body ."$odr $homepag?delmail=$maillist[$i]", "From: <$fromemail>"); } echo "Готово!";

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

Copyright by Владислав Путяк http://ru-coding.com/ . Изменения и дополнения

Скачать скрипт для организации e-mail маркетинга массовой автоматической рассылки писем на e-mail Lasto Post Woodpecker v5.01

Характеристика:

Скрипт не нуждается в базе данных MySQL и сервисе запуска приложений по расписанию cron, а потому работает даже на бесплатных серверах. Количество писем в серии может быть любым ограничений нет. Число независимо работающих служб ничем не лимитировано. Возможность создавать сколько угодно различных серий e-mail рассылок, причём под каждую из них не придётся даже создавать свою директорию.
Прямо через Web-интерфейс можно в считанные секунды добавить новое письмо в ту или иную рассылку но письмо должно быть предварительно заготовлено, и это послание немедленно начнёт свой путь ко всем подписчикам этой службы, получившим ранее полный комплект писем из данной серии.

Есть возможность приаттачивания графики.
- Удобство администрирования: админка подробнейшим образом пишет, что она делает, и с каким именно файлом.
- «Разумное» поведение сервиса: скрипт сам создаёт все необходимые файлы на сервере, а также управляет ими, модифицируя и удаляя при надобности. Ведёт статистику и лог предпринятых действий.
- Продуманная админка: создать новую службу автоматической рассылки можно буквально парой кликов.
- Индивидуальный подход к хостингу: в зависимости от условий, выдвигаемых хостером, имеется возможность управлять интенсивностью e-mail трафика (слать сразу помногу писем, или малыми порциями, но на протяжении всего дня). Некоторые хостинговые компании не позволяют отсылать более одного письма в минуту (защита от спамерства), но даже и в этом случае наш скрипт выполнит своё предназначение.
- Никаких требований к знанию РНР веб-мастером ресурса не предъявляется. Хотя знать РНР полезно…

Усовершенствования, вошедшие во вторую версию:

Подключение Крона простейшим способом.
- Рассылка сообщения всем подписчикам данной службы, либо сразу нескольких служб.
- Более удобная админка (многостраничный вывод всех отчётов).
- Импорт и экспорт e-mail списков. Возможность импорта баз e-mail с именами юзеров (например, отнятых у смартреспондера).

Усовершенствования, вошедшие в третью версию:

Реализовано неограниченное число аттачей любого формата.
- Усовершенствован механизм импорта списка email.
- Встроен сервис восстановления баз данных.
- Добавлен настраиваемый сервис автоматического резервирования баз (бэкап).
- Встроен модуль получения статистики о динамике подписки.
- Появилась возможность исключения конкретного e-mail адреса из всех или некоторых служб. Необходимо, когда на рассылку подписываются пользователи с неадекватным поведением.

Усовершенствования, вошедшие в четвёртую версию:

Юзер должен подтвердить свою подписку - кликнуть по специальной ссылке, пришедшей на его e-mail. Если такого подтверждения не последовало, скрипт впоследствии напомнит о необходимости подтверждения подписки еще несколько раз.
- Веб-мастер может блокировать для подписки некоторые почтовые домены. Например, почтовый сервер от Рамблера считает письма многих авторассыльщиков спамом.
- Изменён алгоритм работы с серийными письмами.
- Временное отключение скрипта не сотворит после его включения лавину писем, которые должны были быть отправлены к этому сроку - письма чинно и благородно уйдут с положенным интервалом.
- Интервал между каждыми двумя соседними письмами одной серии можно устанавливать произвольным.
- Пользователи работают только с временной базой, и не имеют доступа к основной.
- Синхронизация баз осуществляется скриптом, и никем больше.
- Полностью переработан сервис новостных рассылок - это теперь самостоятельная задача.
- Сделана статистика по новостным рассылкам - веб-мастер теперь видит, в какой стадии находится рассылка, общее количество писем, сколько отправлено, сколько осталось.
- Введена возможность рассылки по расписанию (запуск новостной рассылки по достижении определенной даты).
- Сендер снабжён системой оповещения веб-мастера о трудностях, встретившихся в работе. Если на сервере возникнет какой сбой, веб-мастер об этом тотчас узнает из e-mail.
- Отписываться от рассылки и подтверждать подписку теперь можно через e-mail интерфейс.
- При активации бэкапа через Крон Вы будете иметь ежедневную статистику по состоянию служб. Скрипт будет генерировать отчёт и присылать его прямо на Ваш e-mail.
- Раздел динамики подписки дополнен графическими отчётами.

Усовершенствования, вошедшие в пятую (эволюционирующую) версию:

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



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

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

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

Не получается установить?

Наш программист установит и полностью настроит Moguta.Mailer™ на вашем хостинге всего за 990 рублей!

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

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

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

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

  4. Для проверки, перейдите в раздел "Письма", создайте новое письмо, после чего нажмите на иконку "Самолетик", в открывшемся окне введите любой ваш email на который хотите отправить письмо. Если настройки указаны корректно, то письмо будет доставлено вам на почту. Почта может не отправляться исключительно в случае некорректных параметров SMTP.
  5. Если письмо отправляется, то следующим шагом необходимо создать 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;

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

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

Но потом пришла в голову идея, как можно сэкономить на рассылке почты подписчикам. О том, как делается PHP Email рассылка, и с какими подводными камнями прийдется столкнуться пойдет речь в этой статье.

Как создается PHP Email рассылка?

PHP - универсальный язык, у него даже есть встроенная функция отправки почты mail, которая отправляет письма через sendmail или другую утилиту хостинга (зависит от конфигурации хостинга). И тут вопрос стоит в количестве писем. Как функция mail, так и утилиты хостинга работают достаточно медленно. Отправляя по одному письму в 30 секунд далеко не уедешь с базой клиентов 20000. Есть алтернативы, например, можно использовать SwiftMailer - целый компонент из классов на PHP, который позволяет отправлять письма с полным фаршем (вложениями, подписями и всеми доступными плюшками).

Но всегда есть подводные камни.

  1. Лимиты на количество отправок - все хостинги ставят ограничения на отправку исходящей почты из аккаунта клиента в 100-500 писем в день (этого должно быть достаточно для обычной переписки, но ограничивает возможности рассылки нежелательных писем, и значит защищает хостинг от пападения в спам-списки). Такие лимиты помешают вам отправить рассылку при помощи функции mail PHP.
  2. Лимиты почтовых провайдеров - если вы решили использовать SwiftMailer или другой компонент по отправке почты, то скорее всего ради того, чтобы использовать для отправки почтовые сервера почтовых провайдеров (Gmail, Yandex, Mail.ru). SwiftMailer и др. принимают креденшалы внешнего SMTP сервера и отправляют письмо прямо от них. И вот тут срабатывает гибкая система защиты уже со стороны почтового провайдера, он выражает подозрение в рассылке нежелательных писем (даже если они желательные) и блокирует отправку писем.

Есть альтернатива, PHP Email рассылка с VDS

Как видите, эти ограничения сильно портят шансы сделать рассылку на PHP. Выходом может стать аренда виртуального сервера. Там нет таких лимитов, что описаны ранее (вообще лимиты конечно есть, но они включаются только при поступлении провайдеру жалоб на ваш IP адрес).

Итак, у вас есть виртуальный сервер, на нем настроен sendmail или smtp сервер, у него есть свой IP адрес. Используем отправку через php mail или Swiftmailer, отправляем письма. Но будьте внимательны, отправка происходит с одного и того же IP адреса. То есть рано или поздно этот IP адрес попадет хотябы в один спам-список, и письма начнут падать в папку СПАМ у получателей.

Что можно сделать ещё?

Обязательно нужно подтвердить, что вы не просто так, вы реальный отправитель. Для этого нужно проставить DKIM и SPF записи в настройки домена отправителя, и прикрепить dkim подпись к письму. Это небольшое зашифрованное чудовище добавляется к исходящим письмам и говорит почтовой службе получателя, что все отправлено по честному, без хакерства. Такие подписи умеет вставлять SwiftMailer. Это также немного повысит фактор доставки почты. О том как настроить SPF и DKIM читайте в следующих статьях.

Похожие статьи

© 2024 karkywa.ru. Программы. Интернет. Безопасность. Компьютеры. Windows.