GuestAnnouncer2 - модуль e-mail и sms рассылки от 134 версии

 

 

 

GuestAnnoucer2. 

Выложен в 134 версии Абонемент. 

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

Новый модуль e-mail и sms рассылки  -  GuestAnnouncer2 (далее GA2).

 

Модуль был разделён на 3 подмодуля: GA_Editor, GA_Scheduler, GA_Mailer - тем самым разграничивая выполняемый функционал как показано на рис.1

Рис.1 разделение функционала между подмодулями

 

Функционал подмодулей

GA_Editor

Данный подмодуль собрал в себе все функции графического интерфейса, такие как:

  • Содание и редактирование списка оповещений;
  • Просмотр истории рассылок;
  • Тестовая утилита проверки настроек на sms-провайдера (Проверка баланса, отправка одиночной СМС).

Внешний вид основного меню подмодуля можно увидеть на рис.2

Рис.2. Основное меню подмодуля GA_Editor

 

Пункт: Отправить СМС

Окно для тестирования настроек с sms-провайдером представлено на рис.3.

Рис.3 Окно тетстирования настроек sms-провайдера

 

Пункт: Создать языковой файл

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

Используемый языковой файл указывается в GuestAnnouncer2.ini

 

Пункт: История рассылок

Окно истории рассылок представлено на рис.4.

Рис.4 Окно истории рассылок

В окне отображаются все созданные задания на отправку оповещений.

В левой части отображаются общая информация о задании: время создания задания; оповещение, по которому создано задание; адрес на который будет произведена рассылка; результат отправки, если уже были предприняты попытки.

В правой части отображается подробная информация о выделенном в левой части задании: параметры, почёрпнутые из запроса шаблона для данного задания (на рис.4); зафиксированные ошибки отправки, если отправка не удалась, или удалась не с первой попытки; сформированное для отправки сообщение.

 

Пункт: Настройка оповещений

Окно настройки оповещений представлено на рис.5. Окно претерпело минимальные изменения по сравнению с предыдущей версией модуля.

Основные изменения: панель редактирования оповещения, редактор шаблона сообщения, функционал просмотра SQL кода.

Рис.5 Окно редактора оповещений

  • Панель редактора

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

При переходе на другое оповещение/шаблон все несохранённые изменения в текущем оповещении будут сброшены.

 

  • Редактор шаблона сообщения

Было принято решение отказаться от редактора FastReport, в пользу более легко редактируемых шаблонов.

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

Для этого используется маскирование заменяемых переменных в тексте шаблона. Маскирование производится заключением названия (исключительно в верхнем регистре) поля результата запроса в {%_%}  (см. примеры ниже).

Рис.6 Редактор шаблона SMS-сообщения

  • Шаблон SMS-сообщения

Для SMS-сообщений используется однострочный редактор, изображён на рис.6 с примером ввода маскированных полей запроса.

 

Рис.7 Редактор шаблона Email-сообщения

  • Шаблон Email-сообщения

Для Email-сообщений используется многострочный HTML редактор, изображён на рис.7.

При отправке полученный HTML код отправляется в виде HTML страницы, с подменёнными переменными. (Пример на рис.8)
 

Рис.8 Окно просмотра SQL кода и результатов запроса

  • Функционал просмотра SQL кода

В окно режима просмотра SQL кода, на вкладку просмотра результатов, добавлено поле просмотра сформированного сообщения (с HTML форматированием)

 

 

GA_Scheduler

 

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

Подмодуль не имеет графического интерфейса и устанавливается службой.

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

 

GA_Mailer

 

Данный подмодуль занимается непосредственно отправкой назначенных заданий через SMTP сервер, sms-провайдера или на connecter.

Подмодуль также, как и GA_Scheduler, не имеет графического интерфейса.

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

Модуль пытается отправить сообщение в течение значения "Дней на отправку" оповещения.

 

 

Установка и настройка

  • Распаковать содержимое поставки GA2 (FullVersionVer134\_MODULES\GuestAnnouncer\GA2);
  • Применить к БД скрипт guest_announcer2.sql ;
  • Настроить GuestAnnouncer2.ini согласно приведённому ниже:
[Settings]
; Путь к БД
dbname=127.0.0.1/3080:С:\_UCS\_FITNESS\IBDATA\FITNESS.FDB
DBUser=ucs
DBPassword=ucs
; для FireBird 1.5 оставить пустым
; Россия
DBCharSet=WIN1251
; Литва
;DBCharSet=WIN1257

[SERVICE]
Timeout=10
TimeoutMsg=10
NewLogHours=1

[SMTP]
; Настройки на почтовый сервис
SMTPAuthenticationType =1
SMTPHost =smtp.yandex.ru
SMTPUserName =mvs@ucs.ru
SMTPPassword =abonementrules
SMTPPort =465
; использовать SSL при соединении с почтовым сервером
SMTPSSL=1
; метод SSL
; 1 - SSLv2
; 2 - SSLv23
; 3 - SSLv3
; 4 - TLSv1
; 5 - TLSv1_1
; 6 - TLSv1_2
SSLMethod=4
; для Яндекса - SMTPFromAddress должен быть равен SMTPUserName иначе работать не будет!
SMTPFromAddress =mvs@ucs.ru
SMTPConnectionTimeOut =60000
SMTPConnectRetryCount =3

[CONNECTER]
: Настройка на connecter, если результат выполнения оповещения должен инициировать запрос в connecter
URL=http://127.0.0.1:7780
EncodingOut=0
EncodingIn=0
UseURLDecode=1

[SMS]
; настроечный файл для отправки СМС из папки SMS_Template
SMSTemplateIni =С:\_UCS\_FITNESS\Guest_Announcer_2\SMS_Template\TERASMS\SettingsTERASMS.ini
SMSUseStatus=1

; только (!!!) для России первую 8 в номере меняем на +7 
; 0 - не меняем
; 1 - меняем
; 2 - удалять первую 8 либо +7
DropCountryCode=2

[LNG]
;Используемый языковой файл
CurrentLanguage=
;CurrentLanguage=English

[LOCK.SERVER]
; Настройка на сервер блокировок Абонемент
TCPHost=172.22.10.41
TCPPort=1119
TCPTimeout=10000
 
  • Настроить связь с провайдером SMS-рассылки, согласно соответствующей статье раздела ->
  • Запустить GA_Editor.exe, проверить корректность настроек связи с БД. Для чего использовать "Настройка оповещений" или "История рассылок" - если связи с БД нет, окно редактора или отчёта не откроется.
  • Проверить правильность настройки на провайдера SMS рассылки, с помощью функционала "Отправить СМС".
  • После данных проверок, можно произвести установку GA_Scheduler.exe и GA_Mailer.exe, запустив их с ключом "-install" от имени администратора.
  • Модуль готов к работе. Остаётся настроить оповещения.

Важно

Ранее для исключения уже отправленных сообщений из рассылки использовалась следующая конструкция:

not exists
  ( select ah.id from announcements_hist ah
    where ah.ref = X.ref 
    and ah.guest_announcement = #ID_ANNOUNCEMENT# )

В GA2 история рассылок хранится иначе, поэтому необходимо использовать конструкцию, приведенную ниже:

not exists
  ( select ah.id from GA_tasks ah
    left join GA_QUEUE gq on gq.id=ah.QUEUE_ID
    where ah.ref = X.ref and ah.status=1
    and gq.GA_TPL_CONTENTS_ID = #ID_ANNOUNCEMENT#)

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

 

 

Лицензирование

Модуль защищён ключом Проект 4 Модуль 10. Подробнее о лицензировании.