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

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

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

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


вот такие


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

Создать вложение-картинку очень просто, нужно разместить файл на сервере, а в форме редактирования почтового шаблона указать ссылку на него в теге 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 для сайтов с активным ключом. Замечания и предложения пишите в комментариях к этой статье или модулю.

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

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

В прошлый раз мы поговорили о согласованности данных, посмотрели на отличие между разными уровнями изоляции транзакций глазами пользователя и разобрались, почему это важно знать. Теперь мы начина...
«Пятнадцать», или «Пятнашка» — отличный пример простой логической игры, популярной во всем мире. Для того чтобы решить головоломку, необходимо расставить квадратики с цифрами по порядку, от ...
В последние несколько месяцев Facebook заполонили 3D-фотографии. Если вам не довелось их увидеть, то объясню: 3D-фотографии — это изображения внутри поста, которые плавно меняют перспективу при...
Эта статья написана по материалам моего выступления на HR Meetup #5, проходившего 5 октября 2018 года в г. Ростове-на-Дону. О себе Меня зовут Игорь Шелудько. Я – предприниматель в сфере ...
Маршрутизация — процесс поиска оптимального пути для передачи пакетов в сетях TCP/IP. Любой устройство подключенное к сети IPv4 содержит процесс и таблицы маршрутизации. Данная статья не являетс...