-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
279 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
#Использовать logos | ||
|
||
Перем Лог; | ||
|
||
#Область ПрограмммныйИнтерфейс | ||
|
||
Процедура ОтправитьУведомление(ИмяТранспорта, НастройкиТранспорта, ПараметрыУведомления) Экспорт | ||
|
||
Лог = Уведомления.Лог(); | ||
|
||
Если Не НастройкиТранспорта["Использовать"] Тогда | ||
Лог.Отладка("Отправка уведомлений через ""%1"" отключена", ИмяТранспорта); | ||
Возврат; | ||
КонецЕсли; | ||
|
||
Попытка | ||
|
||
Менеджер = МенеджерТранспорта(ИмяТранспорта); | ||
Менеджер.ОтправитьУведомление(НастройкиТранспорта, ПараметрыУведомления); | ||
|
||
Лог.Информация("Уведомление через ""%1"" отправлено", ИмяТранспорта); | ||
|
||
Исключение | ||
|
||
ТекстОшибки = "Ошибка отправки уведомления через ""%1"": " | ||
+ КраткоеПредставлениеОшибки(ИнформацияОбОшибке()); | ||
|
||
Лог.Ошибка(ТекстОшибки, ИмяТранспорта); | ||
|
||
КонецПопытки; | ||
|
||
КонецПроцедуры | ||
|
||
Функция ПараметрыУведомления() Экспорт | ||
|
||
Параметры = Новый Соответствие; | ||
Параметры.Вставить("Тема"); | ||
Параметры.Вставить("Текст"); | ||
Параметры.Вставить("Вложение"); | ||
Параметры.Вставить("ТипТекста", ТипыТекста().html); | ||
|
||
Возврат Параметры; | ||
|
||
КонецФункции | ||
|
||
Функция ТипыТекста() Экспорт | ||
|
||
Типы = Новый Структура; | ||
Типы.Вставить("html", "html"); | ||
Типы.Вставить("markdown", "markdown"); | ||
|
||
Возврат Типы; | ||
|
||
КонецФункции | ||
|
||
|
||
Функция Лог() Экспорт | ||
|
||
ИмяЛога = ПараметрыПриложения.ИмяПриложения() + ".notification"; | ||
|
||
Если Лог = Неопределено Тогда | ||
Лог = Логирование.ПолучитьЛог(ИмяЛога); | ||
КонецЕсли; | ||
|
||
Возврат Лог; | ||
|
||
КонецФункции | ||
|
||
#КонецОбласти | ||
|
||
#Область СлужебныеПроцедурыИФункции | ||
|
||
Функция МенеджерТранспорта(ИмяТранспорта) | ||
|
||
Менеджеры = Новый Соответствие; | ||
Менеджеры.Вставить("Почта", УведомленияПочта); | ||
Менеджеры.Вставить("Телеграм", УведомленияТелеграм); | ||
|
||
Возврат Менеджеры[ИмяТранспорта]; | ||
|
||
КонецФункции | ||
|
||
#КонецОбласти |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#Использовать InternetMail | ||
|
||
#Область ПрограммныйИнтерфейс | ||
|
||
Процедура ОтправитьУведомление(НастройкиТранспорта, ПараметрыУведомления) Экспорт | ||
|
||
Профиль = ПрофильПочты(НастройкиТранспорта); | ||
Сообщение = ИсходящееСообщение(НастройкиТранспорта, ПараметрыУведомления); | ||
|
||
Почта = Новый ИнтернетПочта; | ||
Почта.Подключиться(Профиль); | ||
Почта.Послать(Сообщение, , ПротоколИнтернетПочты.SMTP); | ||
|
||
КонецПроцедуры | ||
|
||
#КонецОбласти | ||
|
||
#Область СлужебныеПроцедурыИФункции | ||
|
||
Функция ПрофильПочты(НастройкиТранспорта) | ||
|
||
Профиль = Новый ИнтернетПочтовыйПрофиль; | ||
Профиль.Таймаут = 10; | ||
|
||
Профиль.АдресСервераSMTP = НастройкиТранспорта["Сервер"]; | ||
Профиль.ПортSMTP = НастройкиТранспорта["Порт"]; | ||
Профиль.ПользовательSMTP = НастройкиТранспорта["Логин"]; | ||
Профиль.ПарольSMTP = НастройкиТранспорта["Пароль"]; | ||
Профиль.ИспользоватьSSLSMTP = НастройкиТранспорта["ИспользоватьSSL"]; | ||
|
||
Возврат Профиль; | ||
|
||
КонецФункции | ||
|
||
Функция ИсходящееСообщение(НастройкиТранспорта, ПараметрыУведомления) | ||
|
||
ТипТекста = Неопределено; | ||
Если ПараметрыУведомления["ТипТекста"] = Уведомления.ТипыТекста().html Тогда | ||
ТипТекста = ТипТекстаПочтовогоСообщения.HTML; | ||
КонецЕсли; | ||
|
||
Получатели = НастройкиТранспорта["Получатели"]; | ||
Сообщение = Новый ИнтернетПочтовоеСообщение; | ||
|
||
Для Каждого Получатель Из Получатели Цикл | ||
Сообщение.Получатели.Добавить(Получатель); | ||
КонецЦикла; | ||
|
||
Сообщение.Отправитель = НастройкиТранспорта["Отправитель"]; | ||
Сообщение.Тема = ПараметрыУведомления["Тема"]; | ||
|
||
Сообщение.Тексты.Добавить(ПараметрыУведомления["Текст"], ТипТекста); | ||
Сообщение.Вложения.Добавить(ПараметрыУведомления["Вложение"]); | ||
|
||
Возврат Сообщение; | ||
|
||
КонецФункции | ||
|
||
#КонецОбласти |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
#Использовать 1connector | ||
#Использовать logos | ||
|
||
Перем Лог; | ||
|
||
Процедура ОтправитьУведомление(НастройкиТранспорта, ПараметрыУведомления) Экспорт | ||
|
||
Лог = Уведомления.Лог(); | ||
|
||
Получатели = НастройкиТранспорта["Получатели"]; | ||
Токен = НастройкиТранспорта["Токен"]; | ||
|
||
Тема = ПараметрыУведомления["Тема"]; | ||
Текст = ПараметрыУведомления["Текст"]; | ||
ЭтоHtml = ПараметрыУведомления["ТипТекста"] = Уведомления.ТипыТекста().html; | ||
|
||
Если ЭтоHtml Тогда | ||
Заголовок = СтрШаблон("<b>%1:</b>", Тема); | ||
Иначе | ||
Заголовок = СтрШаблон("**%1:**", Тема); | ||
КонецЕсли; | ||
|
||
Сообщение = Заголовок + Символы.ПС + Символы.ПС + Текст; | ||
|
||
АдресРесурса = "api.telegram.org/bot" + Токен + "/sendMessage"; | ||
|
||
Для Каждого Получатель Из Получатели Цикл | ||
|
||
ПараметрыЗапроса = Новый Структура; | ||
ПараметрыЗапроса.Вставить("chat_id", Получатель); | ||
ПараметрыЗапроса.Вставить("text", Сообщение); | ||
|
||
Если ЭтоHtml Тогда | ||
ПараметрыЗапроса.Вставить("parse_mode", "html"); | ||
КонецЕсли; | ||
|
||
Ответ = КоннекторHTTP.Get(АдресРесурса, ПараметрыЗапроса); | ||
|
||
Если Ответ["КодСостояния"] <> 200 Тогда | ||
Лог.Ошибка("Не удалось отправить уведомление телеграм пользователю %1", Получатель); | ||
КонецЕсли; | ||
|
||
КонецЦикла; | ||
|
||
КонецПроцедуры |