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

06.10.19

Интеграция - Email рассылки

Описана реализация отправки 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. История отправки хранится в личном кабинете сервиса, разбор ситуации с отсутствием доставки решаем.

 

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

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

См. также

Взаиморасчеты Email рассылки Акт сверки Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Внешняя обработка для Бухгалтерии 3.0 - позволяет автоматически формировать документы «Акт сверки расчетов» с контрагентами за выбранный период с последующей фоновой отправкой на почту контрагента.

3000 руб.

25.11.2020    25184    263    8    

226

Email рассылки Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Решение для массовой рассылки печатных форм (в том числе и дополнительных) любых документов, и произвольных файлов. Рассылка возможна посредством электронной почты, Telegram и файловой системы. Рассылка пакета документов. Добавление факсимильных печати и подписи. Произвольные шаблоны HTML/Simple text с автозаполнением любыми полями документа. Любые форматы файлов. Упаковка вложений в архив. Транслитерация имен файлов. Разбиение рассылки на произвольные порции. Обход спам-фильтров. Журналирование рассылок.

4920 руб.

30.06.2022    11487    75    100    

37

Взаиморасчеты Email рассылки Акт сверки Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Создать и отправить 1000 Актов серки контрагентам за 5 мин ?! Легко! Разработано для конфигурации УНФ Массовое создание и рассылка Актов сверки в три клика.

6000 руб.

13.01.2022    11008    8    13    

13

Взаиморасчеты Email рассылки Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

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

7080 руб.

11.05.2021    9845    7    1    

6

Email рассылки Акт сверки Бухгалтер Платформа 1С v8.3 1С:Управление торговлей 11 Россия Платные (руб)

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

3600 руб.

18.12.2024    285    1    0    

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

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

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

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



спасибо
4. malikov_pro 1327 12.10.19 13:35 Сейчас в теме
(3) Добавил в статью раздел "Отправка данных"
5. spy-83 199 14.10.19 07:15 Сейчас в теме
6. user1021504 13.09.21 20:33 Сейчас в теме
Александр, добрый вечер. А напишите свой e-mail, есть предложение, может Вас заинтересует.
Оставьте свое сообщение