Уведомления о новых письмах в VipNet Деловая почта
- Recluse
- 05.03.2019
- 7 920
- 0
- 22.04.2023
- 2
- 2
- 0
- Содержание статьи
Описание проблемы
Работая в одной государственной организации столкнулся с продуктом компании ИнфоТеКС под названием VipNet Client. Предназначен он для создания защищенной сети, а в комплекте с ним шла дополнительная программа под названием "VipNet Деловая почта". По факту, это отдельный почтовый клиент, для пересылки корреспонденции в защищенной сети.
Все было бы хорошо, только вот установлена "Деловая почта" отдельно быть не может, и держать её нужно на том же компьютере, который подключен к защищенной сети через VipNet Client - соответственно "узнавать" о получении почты можно только по уведомлению на этом самом компьютере. Хорошо, когда за этим компьютером постоянно кто-то работает, а что если этот компьютер стоит отдельно сам по себе, или вообще все это добро установлено на виртуальной машине?
Решение проблемы
Тем не менее, используя имеющиеся настройки программы "Деловая почта" + любой скриптовый язык, можно сгородить огород из костылей, в виде следующей схемы:
- Клиент "Деловая почта" получает новое письмо, и сохраняет его в указанную папку (самое продвинутое, что может данная программа).
- На компьютере, с которого нужно наблюдать за корреспонденцией, каждые 5 минут срабатывает vbs скрипт, который:
- Смотрит дату-время последнего созданного файла, и записывает его,
- При следующем запуске смотрит опять дату-время последнего созданного файла, сверяет её с ранее записанной, и если она отличается - выводит уведомление о новом сообщении. После этого он опять записывает дату-время последнего созданного файла.
Приступим к настройке Деловой почты. Ниже инструкция, которая подойдет для версий 3 и 4.
В ViPNet Деловая почта открываем пункт "Инструменты" - "Настройка...".
Открываем самый последний пункт бокового меню - "Автопроцессинг".
И там нажимаем кнопку "Добавить".
В появившемся окне выбираем пункт "Правило для обработки входящих писем", и нажимаем кнопку "ОК".
Задаем фильтру произвольное название (например, "Для уведомлений о получении входящей почты"). Ставим галочку на каком-либо пункте фильтра (я выбрал пункт "Тема содержит"), и ничего туда не пишем. Таким образом, под этот фильтр теперь попадают все входящие письма.
Открываем вкладку "Действие". Ставим "Тип действия" - "Сохранение в каталог с заменой более старых файлов". Каталог устанавливаем любой, который вам нужен.
Нажимаем кнопки "ОК" для закрытия всех окон с настройками.
На этом настройки Деловой почты закончены. Переходим на компьютер, который должен осуществлять наблюдение за почтой.
Теперь создаем vbs скрипт следующего содержания:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
LocalFile = "ViPNetMail665.txt"
LocalPath = objShell.ExpandEnvironmentStrings("%appdata%") & "\VIPNET\"
RemotePath = "\\VIPNET\c$\ViPNet Mail\"
' Проверяем наличие папки под файл скрипта
If NOT (objFSO.FolderExists(LocalPath)) Then
objFSO.CreateFolder LocalPath
End If
' Проверяем наличие файла
If NOT (objFSO.FileExists(LocalPath & LocalFile)) Then
Set objFile = objFSO.CreateTextFile(LocalPath & LocalFile, True)
objFile.Write "01.01.1970 00:00:00" & vbCrLf
objFile.Close
End If
' Получаем дату последнего изменения из локального файла
Set objFile = objFSO.OpenTextFile(LocalPath & LocalFile, 1)
LocalModifiedDate = objFile.ReadAll
' Получаем дату последнего изменения из удаленной директории
Set objFolder = objFSO.GetFolder(RemotePath)
RemoteModifiedDate = objFolder.DateLastModified
' Сравниваем даты, в случае несовпадения показываем уведомление
If StrComp(RemoteModifiedDate, LocalModifiedDate, 1) <> 0 then
notification = msgbox("Получены новые письма в программе ViPNet Деловая почта!", 64, "Почта ViPNet ТФОМС ЛО " & now())
End If
' Пишем дату последнего изменения из удаленной директории
Set objFile = objFSO.CreateTextFile(LocalPath & LocalFile, True)
objFile.Write RemoteModifiedDate
objFile.Close
Обращаем внимание на переменную (выделена жирным в коде скрипта): RemotePath - это сетевой путь к папке, куда "Деловая почта" будет сохранять почту.
Добавляем выполнение этого vbs скрипта в планировщик задач каждые n-минут (лично по мне оптимальным значением является 5 минут), и по получению почты ждем уведомления.
Добавить комментарий