Есть ответы на вопросы сертификации? Хочешь поделиться новостью о своем проекте? Тогда пиши нам!

Битрикс отправка писем с вложениями без танцев с бубном

Битрикс отправка писем с вложениями без танцев с бубном

Отправка писем с аттачем в bitrix довольно распространенная задача, например, отсылать пользователям договора, анкеты, выписки и другие файлы. В интернете довольно много различных способов решения задачи, например, использование сторонних библиотек или же собственных функций по отправке, т.е. не используя API Битрикса. Но в данном совете, мы рассмотрим самый простой способ отправки таких писем, используя API, т.е. все стандартизовано и хорошо :)

Поставим задачу: необходимо сгенерированный PDF файл отправить на мыло пользователю, после чего, удалить файл. В данном примере мы не будем рассматривать генерацию PDF, установим только, что объект $oPdf имеет метод $oPdf->pdf($sPath);, который сохраняет PDF файл по заданному пути и имени, через переменную $sPath. Итак решение:

$sPath = $_SERVER['DOCUMENT_ROOT'] . '/upload/tmp/test.pdf';
if ($oPdf->pdf($sPath) && file_exists($sPath)) {
    $iFileId = \CFile::SaveFile(\CFile::MakeFileArray($sPath), "main");
    \CEvent::SendImmediate(
        'TEMPLATE_EMAIL',
        SITE_ID,
        ['EMAIL_TO' => 'user@email.ru'],
        'Y',
        '',
        [$iFileId]
    );

    unlink($sPath);
    if ($iFileId) {
        \CFile::Delete($iFileId);
    }
}

Где:

  • TEMPLATE_EMAIL - код шаблона по которому идет отправка;
  • SITE_ID - константа битрикса, содержит символьный код текущего сайта;
  • EMAIL_TO - ключ замены в шаблоне письма - указываем email адрес пользователя;
  • $iFileId - тут храним ID только что созданного и добавленного файла в базу данных.

Так как перед тем как отправить файл, нам потребовалось его создать в папке /upload/tmp/, то и после отправки необходимо удалить файл как из базы, так и с диска. Надеемся пример понятен и позволит не тратить время на решение стандартных задач. Отличного кода!

 434 Битрикс, Разработка, Сниппет, HowTo, Отправка писем, Bitrix
19 июля 2017
Команда BXCert

Наша команда разрабатывает портал BXCert, а также занимается разработкой сайтов на CMS 1С-Битрикс. Все участники являются сертифицированными специалистами Bitrix.

Возможно Вам будет интересно

Комментарии

Чтобы оставлять комментарии необходимо зарегистрироваться и пройти авторизацию.