Письма, файлы и картинки

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

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

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

Для решения задачи был написан небольшой модуль «Картинки и файлы в почтовых событиях», который позволяет делать из таких писем


вот такие


Почтовые шаблоны

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

<img src="/upload/company_logo.jpg"><br />
<h1>Вас приветствует компания ...</h1>

Для сохранения в письме файлов, которые можно будет скачать из почтового клиента, в шаблоне необходимо указать ссылки на них по маске #file:путь_к_файлу# или воспользоваться обработчиками событий

<img src="/upload/comany_logo.jpg"><br />
<h1>Вас приветствует компания ...</h1>
#file:/upload/price.xls#
#file:/upload/company_info.doc#

Обработчик события

В модуле реализована обработка события OnBeforeParseMail($arFields, $arTemplate) для гибкой логики создания вложений. В функцию-обработчик передается 2 параметра — список переменных и массив параметров шаблона.

Примеры

Отключение модуля для писем с ID шаблона = 10

if (IsModuleInstalled("av.mailfile")) {
    AddEventHandler('av.mailfile', 'OnBeforeParseMail', 'OnBeforeParseMailHandler', 0);
    function OnBeforeParseMailHandler($arFields, $arTemplate) {
        if($arTemplate["ID"] == 10)
        	return false;
    }
}

Добавление файла «/upload/offer.doc» в письма пользователю с e-mail «test@localhost.ru»

if (IsModuleInstalled("av.mailfile")) {
    AddEventHandler('av.mailfile', 'OnBeforeParseMail', 'OnBeforeParseMailHandler', 0);
    function OnBeforeParseMailHandler($arFields, $arTemplate) {
        if($arTemplate["EMAIL_TO"] == "test@localhost.ru") {
	        // получаем доступ к экземпляру класса модуля
	        $obMail = C_AV_Mailfile::getInstance();
	        // public-методом addFile добавляем файл к списку отправляемых
	        $obMail->addFile("/upload/offer.doc");
        }
    }
}

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


Интересные статьи

Интересные статьи

Всем привет. Когда я искал информацию о журналировании (аудите событий) в Bitrix, на Хабре не было ни чего, в остальном рунете кое что было, но кто же там найдёт? Для пополнения базы знаний...
VUE.JS - это javascript фрэймворк, с версии 18.5 его добавили в ядро битрикса, поэтому можно его использовать из коробки.
Устраивать конкурсы в инстаграме сейчас модно. И удобно. Инстаграм предоставляет достаточно обширный API, который позволяет делать практически всё, что может сделать обычный пользователь ручками.
Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим н...
Реализация ORM в ядре D7 — очередная интересная, перспективная, но как обычно плохо документированная разработка от 1с-Битрикс :) Призвана она абстрагировать разработчика от механики работы с табл...