Битрикс – как массово отправить письма на API?

В данном способе будем использовать знакомый нам CEvent::Send.

Как в Битриксе отправить несколько писем скриптом?

Разберем отправку писем в цикле. Этот способ больше про код, а не про админку и выпуски рассылок. Рассмотрим в несколько шагов:
Шаг 1. Для начала создадим тип почтового события и само письмо, я назову его BLOG_POST_BROADCAST.
Шаг 2. Создадим тестовую страницу с подключением хедера и футера:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("test");
// наш код
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");

Шаг 3. Пройдемся в цикле по базе наших пользователей, вытащив емейл адреса:

$rsUsers = CUser::GetList(($by="ID"), ($order="asc"), $filter);
$is_filtered = $rsUsers->is_filtered;
while($rsUsers->NavNext(true, "f_")) :
	//$f_EMAIL

	echo "[".$f_ID."] (".$f_LOGIN.") ".$f_NAME." ".$f_LAST_NAME."
"; endwhile;

Шаг 4. Добавим в цикле динамические параметры, а текст письма уже должен быть в нашем шаблоне:

$rsUsers = CUser::GetList(($by="ID"), ($order="asc"), $filter);
$is_filtered = $rsUsers->is_filtered;
while($rsUsers->NavNext(true, "f_")) :
	//$f_EMAIL

	echo "[".$f_ID."] (".$f_LOGIN.") ".$f_NAME." ".$f_LAST_NAME."
"; $arEventFields = array( "EMAIL_FROM" => FORM_SENDER_EMAIL, "EMAIL_TO" => $f_EMAIL, "SITE_NAME" => 'SITE NAME', "USER_NAME" => $f_NAME." ".$f_LAST_NAME, "MESSAGE_TITLE" => 'Тема письма!', "AUTHOR" => 'Пресс-служба', "MESSAGE_TEXT" => $message, "MESSAGE_PATH" => 'https://site.com/company/personal/user/4492/blog/380/', ); CEvent::Send("BLOG_POST_BROADCAST", "s1", $arEventFields, 'N', 173); // 173 - message_id endwhile;

Вот и всё, мы передали некоторые параметры. Переменная $message – может хранить любое сгенерированное сообщение.

ПС – этому коду уже несколько лет, но для общего развития решил его всё таки опубликовать. Просьба не кидаться помидорами 🙂 . В общем-то массовая отправка писем может быть реализовано плюс-минус таким способом. Важно только помнить про то, что базы у всех разные, сервера разные и нагрузка на сервер с таким неоптимизированным кодом тоже может вырасти.

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

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *