Реализация отправки Email через SendPulse API

Публикация № 1129435

Разработка - Системная интеграция - Email рассылки

12
Описана реализация отправки Email с использованием API и применением очереди отправки как пример для программистов (вариант компоновка блоков в контексте конкретного сервиса).

Вводные:

1. Нужна рассылка уведомлений клиентам о заказах

2. Конфигурация УТ 11.4

3. Отсутствие умения верстать HTML письма.

4. Сервис отправки выбран потому что у него есть:

4.1 нормальная документация на HTTP API https://sendpulse.com/ru/integrations/api/smtp

4.2 адекватная тех поддержка

4.3 бесплатный пакет (ограничение отправка со списка email, отправка с домена по платным подпискам)

Реализация:

Выбрал вариант реализации в виде расширения в котором:

1. Добавил справочник с настройками подсистемы, чтобы в коде настройки не фиксировать, для работы с сервисом беру первую не помеченную на удаление запись.

1.1 Настройка доступа на стороне SendPulse

"Необходимые для получения ключа параметры можно найти в настройках аккаунта, во вкладке API."

2. Добавил перечисление ТипыОтправлений и регистр сведений СоответствиеМакетов, для фиксации настроек компоновки для каждого типа отправлений, макеты формируются на стороне сервиса и в них прописываются нужные параметры.

1.2 Настройка макетов на стороне SendPulse

Макеты создаются по документации https://sendpulse.com/ru/knowledge-base/email-service/email-create/create-own-template

Получение ID макета и использование переменных.

ID макета можно получить из адресной строки при редактировании сохраненного макета.

Переменные обозначаются "{{}}".

3. Для хранения очередью добавил перечисление СостояниеОтправлений и Регистр сведений ОчередьОтправкиУведомлений

Формирование очереди:

Доработал процедуру "При записи" в документе "Заказ клиента" и РС "СостоянияЗаказовКлиентов"

 
 Процедура в РС СостоянияЗаказовКлиентов

Реализация обработки изменения заказа зависит от специфики работы компании.

Отправка очереди:

Запросом выбираю все записи с состоянием "создано" и обрабатываю:

 
 Код процедуры отправки

 

Аутентификация на сервере:

Для отправки рабочих сообщений используется Bearer токен. Токен храню в переменной модуля.

 
 Код получения токена
 

Формирование сообщения:

Документация по структуре данных https://sendpulse.com/ru/integrations/api/smtp

 
Код формирования 

В общем формирую соответствие, которое сериализую в JSON и отправляю на сервер. Заполнение отправителя, получателя зависит от конфигурации и специфики работы компании. 

Вложения  реализовываются через Base64 строку.

 
 Код реализации вложения для УТ 11.4

 

Отправка данных:

Сериализую соответствие данных и отправляю POST запросом, проверяю на коды ошибок и по результату делаю запись в очередь отправки.

 
Код реализации отправки данных

 

Протухшие записи:

Бывают ситуации что очередь не отправляется по техническим причинам, а отправлять неактуальные данные не нужно.

Если дата создания записи очереди меньше чем ТекущаяДата() - КоличествоДнейАктуальностиПисьма то помечаю её как ошибочную.

Отладка:

Для отладки использую параметр настройки "Тест" при которой письма отправляются отправителю и выводятся сообщения о ошибках HTTP запросов.

Обработка ошибок:

При ошибках формирования письма и отправки обновляю запись очереди сообщений устанавливая состояние "Ошибка" и записываю в реквизит "СообщениеОбОшибке"

Подрезка очереди:

Использую параметр настроек "КоличествоДнейИстории" и Удаляю все записи с датой создания меньше ТекущаядДата() - КоличествоДнейИстории

 
 Код подрезки

Автоматический запуск:

Реализовано в виде внешней обработки (как формировать регламентные задания кодом не нашел, с обработкой реализуется просто, работает стабильно).

 
 Код модуля обработки

 

Итог:

1. Работающие уведомления по email, которых хватает для базовой работы отдела продаж.

2. Клиент может изменять макеты по своему усмотрению.

3. Добавление новых типов сообщений и формирования параметров под них относительно просто.

4. История отправки хранится в личном кабинете сервиса, разбор ситуации с отсутствием доставки решаем.

 

В реализации использовались наработки из //1c.taxpravo.ru/public/717412/

Благодарю за внимание.

12

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. volokitinac 09.10.19 10:27 Сейчас в теме
Замер скорости отправки через http и через ИнтернетПочта делали ?
2. malikov_pro 153 09.10.19 13:55 Сейчас в теме
(1) Замеры по скорости не делал. Для текущей инсталляции хватает. Если без вложений запрос маленький и обрабатывается относительно быстро.

Решал вопрос про перенос верстки на сторонний сервис, дополнительно и аналитику получаем по просмотрам сообщений и переходам.

ИнтернетПочта по SMTP отправляет, с ним вариант воспользоваться сервисом шаблонов с него взять верстку скомпоновать локально и отправить по SMTP, но нагрузка на сервер 1С и трафик с него будет больше.
3. spy-83 186 12.10.19 08:59 Сейчас в теме
Здравствуйте
Отличный разбор.

можно глянуть код функции
ОтправитьДанные(СоответствиеДанные, Выборка);



спасибо
4. malikov_pro 153 12.10.19 13:35 Сейчас в теме
(3) Добавил в статью раздел "Отправка данных"
5. spy-83 186 14.10.19 07:15 Сейчас в теме
Оставьте свое сообщение

См. также

Механизм "Отложенная отправка писем", при записи документа 7

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Email

Иногда требуется отправлять письма при записи документа. Чтобы избежать проблем с производительностью, сделал механизм "Отложенная отправка писем".

14.10.2019    796    John_d    6       

Об отправке электронных писем средствами платформы "Бухгалтерия предприятия КОРП" 4

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) Email

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

28.03.2019    1922    VKuser13475183    0       

Вдохнем вторую жизнь во встроенный почтовый клиент из 1С:Управление торговлей 10.3 13

Статья Программист Нет файла v8 УТ10 УУ Управление взаимоотношениями с клиентами (СRM) Бесплатно (free) Email

Хотели было воспользоваться почтовым клиентом из Управление торговлей 10.3, да не тут-то было. К сожалению, фирма "1С" почти совсем ее забросила и если Ваш респондент отправляет Вам письма, содержащие HTML, то Вас ждут матюки... Ну что же, как говорится: "Спасение утопающих - дело рук самих утопающих".

25.12.2018    4423    1c.pro.fun    8       

Таблица значений в Таблицу HTML - функция с возможностью настройки цвета шапки, заголовков, выравнивания и размера колонок 83

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции

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

22.12.2017    18931    rpgshnik    21       

Код для кнопки "Отправить почтовым сообщением" любого табличного документа, используя механизмы УТ 11.2 11

Статья Программист Нет файла v8 УТ11 Бесплатно (free) Практика программирования Email

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

23.01.2017    10394    RockLeeSan    0       

Как отправить по почте НЕтиповой документ, используя стандартные средства БП 3.0 20

Статья Системный администратор Программист Нет файла v8 БП3.0 Россия Windows Бесплатно (free) Email Практика программирования

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

08.02.2016    14513    config    3       

Алгоритм создания и отправки электронного письма (со вложением) УТ 3.0 для Украины 8

Статья Программист Нет файла v8 УТ10 Украина Windows Бесплатно (free) Практика программирования Email

Алгоритм позволит быстро создать письмо с вложением (например, печатная форма Заказа клиента в формате XLS) и отправить его партнеру. Для конфигурации Управление торговлей для Украины 3.0

20.07.2015    18590    Bor_ka    5       

Настройка электронной почты в УНФ для Google Mail (gmail) 20

Статья Системный администратор Программист Нет файла v8 УНФ Россия Windows Бесплатно (free) Email

В конфигурации Управление небольшой фирмой имеется встроенный почтовый клиент, но он имеет серьезный недостаток, нет поддержки шифрования SSL. Соответственно работа с ящиком gmail будет невозможна. В данной статье я расскажу как заставить УНФ работать с gmail.

19.04.2013    25530    plkv    4       

Отправка почты с использованием основного почтового клиента ОС (продолжение) 8

Статья Программист Нет файла v8 КА1 Россия Windows Бесплатно (free) Практика программирования Email

В публикации описан фрагмент кода, позволяющий отправлять печатные формы с помощью почтового клиента операционной системы. Дальнейшее развитие публикации http://infostart.ru/public/91206/ Добавлено: 1. Поддержка Mozilla Thunderbird. 2. Автоподстановка адресата письма.

27.03.2013    14085    d7k    7       

Отправка почты с использованием основного почтового клиента ОС 29

Статья Программист Нет файла v8 УТ10 УПП1 Бесплатно (free) Универсальные функции Email

В публикации описан фрагмент кода, позволяющий отправлять печатные формы с помощью почтового клиента операционной системы (напр. Outlook, Bat и т.д.)

21.09.2011    27011    Администратор 1С    18       

Управление электронной почтой: картинки в теле письма как tmp 8

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Email

Столкнулся с проблемой отправки картинок из 1С (при использовании внешнего HTML редактора)

21.03.2011    11920    mozz    4       

Отправка e-mail через Microsoft Office Outlook 23

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования Email

Способ обхода повышенной безопасности Microsoft Office Outlook, для программного доступа к функциям работы с почтой. Используется библиотека Outlook Redemption.

02.03.2011    14702    ruslanruslan    1       

Почтовая рассылка 1С 8 6

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Управление взаимоотношениями с клиентами (СRM) Бесплатно (free) Email

Почтовая рассылка 1С 8 Благодаря *.xml вы никогда не теряете базу mail-получателей. Рассылку можно осуществлять как через OutLook так и с обычного бесплатного сервера.

02.02.2010    11951    319    mut_mut    6       

Расчетные листки организации с рассылкой по почте 24

Инструменты и обработки Бухгалтер Архив с данными v8 ЗУП2.5 Россия БУ Зарплата Бесплатно (free) Бухгалтерские Email

Расчетные листки организации с рассылкой по почте. Основана на стандартном отчете. Добавлена возможность рассылки расчетных листков в формате xls на почтовые ящики сотрудников.

21.10.2009    10040    284    Alltruist    19       

Почтовый клиент УТ и gmail 120

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Администрирование данных 1С Универсальные функции Email

Скрещиваем почтовый клиент Управления торговлей и Google Apps. Натолкнулся на это - http://infostart.ru/public/16429/ - решение, и вспомнил, что делал похожую вещь для MS Exchange. Модификация конфигурации не потребуется.

06.10.2009    97273    vabue    48       

Отправка почты из 1С 209

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Бесплатно (free) Email

Небольшой пример использования различных способов отправки e-mail из 1С.

13.10.2008    56441    3976    coder1cv8    71       

Рассылка электронной почты пользователям по категориям 7

Инструменты и обработки no Внешняя обработка (ert,epf) v8 УТ10 УПП1 Управление взаимоотношениями с клиентами (СRM) Бесплатно (free) Email

Обработка позволяет вам выбрать по категориям контрагентов, контактных лиц контрагентов и разослать им электронное сообщение. Удобна для организации маркетинговых рассылок.

04.07.2008    6103    122    nav-it    1