Отправка письма со вложением через веб-формы Битрикс

Ниже рассматривается процесс создания и настройки формы на сайте для отправки писем со вложениями на почту администратора сайта. Решается данная задача через модуль «Веб-формы» от битрикса.

Идея для данной заметки возникла из следующей практической ситуации: Автору достался сайт на битриксе с самописной формой, задача которой была в том, чтобы отправлять вложенные документы на почту ответственному сотруднику. К сожалению, форма работала нестабильно, вместо вложения в письме была ссылка на это вложение, загруженное в одну из папок на сайте. Собственно, требовалось решить указанные проблемы с формой. Автором было предложено «пересобрать» данную форму средствами модуля «Веб-формы», так как данный подход, в данном случае, закрывал все описанные проблемы.
Весь процесс можно разделить на 3 условных блока:
Создание веб-формы в админке
Для создания веб-формы в битриксе нужно перейти в Сервисы > Веб-формы > Настройка форм и кликнуть кнопку «создать».
Основной интерес, на данном этапе, представляют вкладки «Свойства» и «Шаблон формы».
На вкладке «свойства» требуется ввести название, отметить привязку к сайту и отправку результатов по email, ввести название кнопки для отправки формы, капчу (опционально):

На вкладке «Шаблон формы» происходит настройка, собственно, шаблона. Можно использовать как визуальный редактор, так и отображение в виде кода. Для данной задачи нужна была форма всего из двух полей:
![]()
Но у меня почему то не получается, я ввожу свой e-mail но на него ничего не приходит может я где что не так сделал
Модуль
Последнее обновление: 03.04.2009 15:55:52
Активен: v
*Сайт: v [s1] Сайт по умолчанию
Тип почтового события: [ FORM_FILLING_SIMPLE_FORM_4 ] == Заполнена web-форма «SIMPLE_FORM_4»
*От кого: #DEFAULT_EMAIL_FROM#
*Кому: mamedovvs@mail.ru
Скрытая копия:
Тема: #SERVER_NAME#: заполнена web-форма [#RS_FORM_ID#] #RS_FORM_NAME#
Помогите кто понял
Попробуйте в настройках Главного модуля убрать галочку «Конвертировать 8-битные заголовки в теме письма»
Также посмотрите, может быть письма попадают в «Спам» в вашем почтовом ящике.
| Цитата |
|---|
| Андрей Погорелый пишет: Попробуйте в настройках Главного модуля убрать галочку «Конвертировать 8-битные заголовки в теме письма» |
Также посмотрите, может быть письма попадают в «Спам» в вашем почтовом ящике.
хм, у меня такая же проблема, веб форма отрабатывает, введенные данные можно просмотреть, но на почту ничего не отправляется, почтовое событие привязал, в спам не попадает, с галочкой «Конвертировать 8-битные заголовки в теме письма» попробовал, ничего не помогло. В чем еще может быть тут дело?
Это новая форма, ранее созданные формы работают, как и прежде нормально.
Как создать форму с отправкой на почту и записью в инфоблок?
Сделал все следующим образом:


Это достаточно просто, если вас устроит стандартный функционал.
Есть простой компонент в битриксе. Называется «форма добавления и редактирования элементов».
joxi.ru/52aNjzZIRedxA0
Подключаете, настраиваете, в частности в какой инфоблок добавлять элемент.
Шаблон у него, конечно, не ахти. Скорее всего, нужно будет поменять. Но это уже другая задача.
С первой задачей справились.
Все. Добавляйте элементы

А можно немного поподробнее?
Сейчас у меня обработчик формы выглядит так:
$mail = new PHPMailer;
$mail->From = «no-replay@admin.ru»;
$mail->FromName = «no-replay»;
$mail->AddAddress(‘admin@email.ru’);
$mail->isHTML(true);
$mail->CharSet = ‘UTF-8’;
$mail->Subject = ‘Тема’;
$mail->Body = ‘
Название организации: ‘.$_POST[‘name_organization’].’
Контактное лицо: ‘.$_POST[‘contact_name’].’
Город: ‘.$_POST[‘city’].’
Телефон: ‘.$_POST[‘tel’].’
Требуемая мощность: ‘.$_POST[‘power’].’
Хладогент: ‘.$_POST[‘cloudhed’].’
Температура наружного воздуха: ‘.$_POST[‘temp_air’].’
Температура конденсации хладогента: ‘.$_POST[‘temp_cloudhead’].».$_POST[‘other’].’
if($mail->Send()) <
echo ‘Отправлено’;
>
Я так понимаю надо до PHPMailer, подключить ядро Битрикса с iblock, и дальше уже использовать метод CIBlockElement::Add, для добавления записи?
И будет это все работать если использовать AJAX отправку?

А в init.php добавьте хук на добавление элемента в ваш ИБ. Что-то вроде (фигачу по памяти, так что внимательнее):
AddEventHandler(«iblock», «OnAfterIBlockElementAdd», Array(«MyClass», «OnAfterIBlockElementAddHandler»));
Как отправлять данные из CRM-формы на почту сотруднику

CRM-формы — один из самых популярных инструментов для получения информации от клиентов. С их помощью регистрируют на мероприятия, собирают обратную связь, принимают заказы в интернет-магазине. После того, как клиент заполнил форму, вся информация сохраняется в CRM. Но бывают случаи, когда информацию из CRM необходимо продублировать на почту ответственному сотруднику.
Рассмотрим один из способов отправки данных из формы на почту. Реализация сценария состоит из трёх частей:
Далее по пунктам разберем необходимые настройки.
Настройка CRM-формы

Создайте новую форму и настройте поля следующим образом:

В разделе Сущности в CRM выберите Сделка + Контакт.


Разместите форму в виджете на вашем сайте.
Подключение почты
Подключите почтовый ящик, с которого вы будете отправлять письма, и настройте SMTP-сервер. Как это сделать читайте в статье Отправка писем через SMTP-сервер.

Настройка робота
После заполнения формы будет созданы сделка и контакт. Имя, номер телефона и email попадут в карточку контакта, т.к. это данные клиента, а комментарий попадёт в сделку. Эти данные можно использовать в тексте письма.
Как добавить значения полей в письмо

При заполнении формы сделки создаются на первой стадии направления, именно там и разместите робота. Создайте робота Отправить письмо сотруднику с такими настройками:
Работа с электронной почтой на 1С-Битрикс
Подробно рассказываем о способах отправки писем на электронную почту, нюансах настроек и исправлении ошибок. Вы узнаете, как проверить качество доставки сообщений и улучшить их доставку.

Работа с электронной почтой на 1С-Битрикс
Подписаться на
рассылку
Отправляем полезные письма о бизнесе, сайтах и хостинге каждые 2 недели
1. Как отправить письма из 1С-Битрикс
Многие действия на сайте, работающем на 1С-Битрикс, сопровождаются отправкой почтовых уведомлений. При этом могут возникнуть проблемы с доставкой писем – попадание в спам или блокировка отправки сообщений.
Отправить сообщение из 1С-Битрикс можно с помощью скрипта php mail(); и из ядра 1С-Битрикс.
Отправление писем с php mail();
PHP-функция передает команду приложению sendmail, которое отправляет электронное сообщение. Для его отправки используется скрипт mail().
Отправка сообщения с php mail(); происходит через административную панель вашего сайта. Для этого перейдите в Настройки (1) → Инструменты (2) → Командная строка PHP (3).
Для отправки письма нужно заполнить обязательные параметры – e-mail, заголовок письма и текст сообщения. В поле командной PHP-строки введите код: mail(«to», «subject», «text»);.
«to» на электронную почту получателя;
«subject» – заголовок вашего письма;
«text» – текст вашего письма по строкам.
Отправьте письмо адресату с помощью кнопки «Выполнить».
Функция mail использует локальный почтовый сервер. С ним связаны ограничения: он может отсутствовать, быть прописан в черных списках или негативно влиять на производительность.
Кроме этого, антиспамовые фильтры не одобряют отправление сообщений функцией php mail();, поэтому такие письма обладают большей вероятностью попадания в спам.
Даже если такое сообщение доходит до адресата, то оно не вызывает доверия получателя, так как:
Нет подписи DKIM. Подтверждает подлинность отправителя с помощью ключа DKIM. Подпись предотвращает замену письма злоумышленниками.
Нет SPF-записи. Защищает от писем с поддельными адресами отправителей из вашего домена. Для ее настройки создается TXT-запись. В ней перечисляют серверы, которые могут отправлять письма от имени домена, и механизм обработки писем, отправленных от других серверов.
Нет шифрования. Обеспечивает конфиденциальность передачи данных. Для настройки нужно установить SSL-сертификат или TLS-сертификат.
Результат отправки письма с php mail();
Безопасность письма обеспечена только стандартным шифрованием, которое установлено автоматически между сервером Reddock и сервером почтового сервиса.
Подписей отправитель письма не имеет. Значит, такое письмо могло быть отправлено и злоумышленниками.
Отправка на Яндекс почту
Отправление писем из ядра 1С-Битрикс
Для отправки почтовых сообщений из ядра 1С-Битрикс нужно настроить почтовую систему. Для этого создать:
тип почтового события,
Тип почтового события и почтовый шаблон можно настроить в административной панели: Настройки (1) → Настройки продукта (2) → Почтовые и СМС события (3). В последнем выбрать необходимое действие.
Само почтовое событие отправляется функцией send. С помощью нее происходит отправка письма. Для этого нужно перейти в Настройки (1) → Инструменты (2) → Командная PHP-строка (3). Введем в поле код из примера документации 1С-Битрикс для разработчиков. В нем замените e-mail получателя на адрес вашей электронной почты и нажмите «Выполнить».
Результат отправки письма из ядра 1С-Битрикс
Письмо не пришло ни на Яндекс.Почту, ни на Gmai, поэтому проверим его статус. Для этого перейдите в панели администрирования в Настройки (1) → Производительность (2) → Таблицы (3) и выберите таблицу «b_event» (4).
В таблице находятся данные о всех отправленных сообщениях, их содержании и доставке. Наше письмо не было доставлено.
Проверка отправки писем с помощью форм на сайте
Используйте форму на сайте, после заполнения которой автоматически приходит уведомление на почту. Например:
форма обратной связи,
регистрация на сайте,
подписка на email-рассылку,
покупка товара и др.
При успешном заполнении формы на указанную почту будет отправлено уведомление об отправке сообщения, регистрации, подтверждении заказа или подписки.
Результат отправки с помощью форм
Мы проверили качество отправки писем с помощью mail-tester. Для этого использовали форму подписки на email-рассылку, вставили предлагаемый mail-tester почтовый адрес и получили такой результат:
Дополнительно проверили доставку сообщений в Gmail и Яндекс.Почту. Результат – попадание в папку «Спам».
2. Как проверить качество доставки сообщений
Рекомендуем анализировать качество доставки сообщений с помощью спам-тестеров. Мы используем mail-tester, потому что он удобен в применении и имеет русский интерфейс.
Использовать mail-tester просто. На странице mail-tester.com появляется случайный адрес электронной почты. На нее нужно отправить письмо с проверяемого почтового ящика.
Важно: mail-tester позволяет бесплатно проверить письма три раза за одни сутки.
Сервис выявляет спам, проверяет содержание и форматирование письма, подлинность сервера, черные списки и нерабочие ссылки. По всем параметрам предлагает рекомендации по исправлению.
Для успешной доставки писем оценка должна быть минимум 8 баллов.
3. Как настроить почтовый сервер
Для отправки сообщений необходимо настроить почтовый сервер: локальный и внешний.
Локальный почтовый сервер
Для его настройки в личном кабинете услуги перейдите в Почта (1) → Почтовые домены (2), выберите почтовый домен (3) и нажмите на «Изменить» (4).
В открывшейся вкладке выполните следующие действия для повышения качества писем:
Включите Greylisting. Greylisting – это автоматический фильтр входящего спама на уровне протокола SMTP. Он блокирует спам с помощью временной задержки входящих сообщений.
Включите SpamAssassin. SpamAssassin – эффективное средство для фильтрации спама, основанное на взаимодействии ключевых компонентов: оценочного сервиса, транспортного агента и базы шаблонов писем.
Включите проверку на вирусы. Clam AntiVirus – пакет антивирусного ПО. Он предназначен для проверки файлов, прикрепленных к сообщениям.
Включите DKIM для домена. Технология DomainKeys Identified Mail (DKIM) объединяет несколько существующих методов антифишинга и антиспама с целью повышения качества классификации и идентификации легитимной электронной почты.
Включите DMARC для домена. DMARC предназначен для снижения количества спамовых и фишинговых электронных писем.
Активируйте защищенное соединение (SSL-сертификат).
Внешний почтовый сервер
Существует несколько вариантов подключения внешнего почтового сервера. Лучший вариант – отправка почты с помощью SMTP-модуля.
Подключение SMTP-модуля
Модуль «Отправка электронной почты через SMTP» решает эту проблему применением SMTP-серверов.
Для настройки необходимо установить модуль от Веб студии Руби из Маркетплейса 1С-Битрикс.
2. В открывшейся странице модуля нажмите на кнопку «Установить» (1);
3. В поле введите адрес вашего сайта или портала (2) и нажмите на кнопку «Установить» (3).
Перейдите в Marketplace (1) → Установленные решения (2) и установите модуль (3-4).
После успешной установки модуля появится сообщение:
В панели управления Битрикс у вас появится новый пункт. Перейдите в Настройки (1) → Настройки продукта (2) → Настройки модулей (3).
В открывшейся вкладке укажите параметры вашего SMTP-сервера, отметьте галочки для «Модуль активен», «Вести журнал», «Проверять формат адреса получателя» и «Сохранять письмо при ошибке».
Далее необходимо выбрать типовые профили (1) в соответствии с вашей почтой: Яндекс, Google или Mail.Ru. Нажмите на кнопку «Применить» (2).
Выполнив эти действия, почтовые сообщения будут отправляться через SMTP-сервер.
Дополнительные SMTP-аккаунты можно добавить с помощью опции «Добавить дополнительный E-mail SMTP аккаунт». Укажите исходящий адрес и в новой вкладке сделайте настройки для этого адреса.
Важно! Для подключения модуля необходимо добавить строку
в файл /bitrix/php_interface/init.php или /local/php_interface/init.php.
Если такого файла нет, его необходимо создать.
4. Как избежать попадания писем в спам
Рассказываем, что предпринять для доставления писем в папку «Входящие».
Отправление писем через модули 1С-Битрикс
В административной панели сайта есть возможность отправки почты двумя способами: с помощью рассылки и email-маркетинга.
Рассылка
Для отправки письма перейдите в Сервисы (1) → Рассылки (2) → Выпуски (3). Создаем рассылку (4), в поле электронной почты получателя вставьте новый адрес из mail-tester. Отправка возможна только на один e-mail.
Статус письма обновляется на «Отправлено с ошибками».
Для исправления ошибок отправьте письмо повторно. Нажмите на тему письма и повторите отправку для ошибочных.
Результат отправки письма в mail-tester. Отправление писем блокируется.
Отправление через Email-маркетинг
Для отправки письма перейдите в Маркетинг (1) → Email-маркетинг (2) → Старт (3).
Создайте новую рассылку.
Выберите первый шаблон. В графе «Получатели тестовой отправки» введите адрес, предложенный mail-tester, и отправьте на него письмо.
Результат стал лучше, однако этой оценки недостаточно для качественной доставки писем.
Отправление писем с доменной почты
Используйте сторонние приложения для отправки электронной почты с использованием доменной почты. Адрес электронной почты с доменом вашего сайта наиболее привлекателен, повышает доверие и лояльность клиентов.
Существует несколько специализированных сервисов по созданию почты: Яндекс, Google, Mail.Ru и др.
Создать почту можно и на хостинге, но по сравнению с Яндекс, Google, Mail.Ru она имеет ряд недостатков:
максимальное количество отправляемых писем – 300 в час;
максимальный размер почтового сообщения – 25 000 КБ;
почтовый сервис на хостинге имеет стандартную панель, в ней нет дополнительных инструментов и интеграций;
при переходе к другому хостинг-провайдеру, вся ваша почта останется на хостинге и вам придется переносить ее самостоятельно.
Однако и специализированные сервисы имеют слабые стороны:
G Suite (от Google) – имеет только 14-дневный бесплатный период использования.
Поэтому рекомендуем использовать сервис Яндекс.Почта. Для создания почты на Яндекс следуйте нашей инструкции.
После настройки протестируйте доставку повторно. Какой результат получился:
