Выложен в 134 версии Абонемент.
Модуль GuestAnnouncer в рамках переработки, для устранения проблемных частей функционала был серьёзно переработан.
Новый модуль e-mail и sms рассылки - GuestAnnouncer2 (далее GA2).
Модуль был разделён на 3 подмодуля: GA_Editor, GA_Scheduler, GA_Mailer - тем самым разграничивая выполняемый функционал как показано на рис.1
|
Рис.1 разделение функционала между подмодулями |
GA_Editor
Данный подмодуль собрал в себе все функции графического интерфейса, такие как:
Внешний вид основного меню подмодуля можно увидеть на рис.2
|
Рис.2. Основное меню подмодуля GA_Editor |
Пункт: Отправить СМС
Окно для тестирования настроек с sms-провайдером представлено на рис.3.
|
Рис.3 Окно тетстирования настроек sms-провайдера |
Пункт: Создать языковой файл
При выборе данного пункта будет создан языковой файл, для возможности последующей локализации подмодуля.
Используемый языковой файл указывается в GuestAnnouncer2.ini
Пункт: История рассылок
Окно истории рассылок представлено на рис.4.
|
Рис.4 Окно истории рассылок |
В окне отображаются все созданные задания на отправку оповещений.
В левой части отображаются общая информация о задании: время создания задания; оповещение, по которому создано задание; адрес на который будет произведена рассылка; результат отправки, если уже были предприняты попытки.
В правой части отображается подробная информация о выделенном в левой части задании: параметры, почёрпнутые из запроса шаблона для данного задания (на рис.4); зафиксированные ошибки отправки, если отправка не удалась, или удалась не с первой попытки; сформированное для отправки сообщение.
Пункт: Настройка оповещений
Окно настройки оповещений представлено на рис.5. Окно претерпело минимальные изменения по сравнению с предыдущей версией модуля.
Основные изменения: панель редактирования оповещения, редактор шаблона сообщения, функционал просмотра SQL кода.
|
Рис.5 Окно редактора оповещений |
Панель редактора оповещения теперь доступна всегда. Для сохранения изменений необходимо пользоваться кнопкой сохранить в верхней части окна.
При переходе на другое оповещение/шаблон все несохранённые изменения в текущем оповещении будут сброшены.
Было принято решение отказаться от редактора FastReport, в пользу более легко редактируемых шаблонов.
Для обечпечения функциональности подстановки данных из запроса, реализована подмена переменных в отправляемом тексте результатами выборки.
Для этого используется маскирование заменяемых переменных в тексте шаблона. Маскирование производится заключением названия (исключительно в верхнем регистре) поля результата запроса в {%_%} (см. примеры ниже).
|
Рис.6 Редактор шаблона SMS-сообщения |
Для SMS-сообщений используется однострочный редактор, изображён на рис.6 с примером ввода маскированных полей запроса.
|
Рис.7 Редактор шаблона Email-сообщения |
Для Email-сообщений используется многострочный HTML редактор, изображён на рис.7.
В окно режима просмотра SQL кода, на вкладку просмотра результатов, добавлено поле просмотра сформированного сообщения (с HTML форматированием)
GA_Scheduler
Данный подмодуль вмещает в себе функции проверки наступления условий и создания заданий на отправку.
Подмодуль не имеет графического интерфейса и устанавливается службой.
Модуль безостановочно опрашивает БД запросами сформированными по оповещениям, активным в данный период времени. И при появлении непустого ответа, создаёт задание на отправку по данному оповещению, заполняя все необходимые параметры.
GA_Mailer
Данный подмодуль занимается непосредственно отправкой назначенных заданий через SMTP сервер, sms-провайдера или на connecter.
Подмодуль также, как и GA_Scheduler, не имеет графического интерфейса.
Модуль непрерывно мониторит появление новых заданий на отправку. При появлении, формирует текст оповещения, подставляя результаты запроса, и отправляет. Если отправка неуспешна - фиксирует ошибки полученные от принимающей стороны.
Модуль пытается отправить сообщение в течение значения "Дней на отправку" оповещения.
[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
Ранее для исключения уже отправленных сообщений из рассылки использовалась следующая конструкция:
В GA2 история рассылок хранится иначе, поэтому необходимо использовать конструкцию, приведенную ниже:
При переходе со старой версии модуля на новую, для корректной работы рассылок, необходимо использовать обе конструкции одновременно.
Модуль защищён ключом Проект 4 Модуль 10. Подробнее о лицензировании.