Уведомления о новых письмах в VipNet Деловая почта

  • 05.03.2019
  • 7 394
  • 0
  • 22.04.2023
  • 2
  • 2
  • 0
Уведомления о новых письмах в VipNet Деловая почта

Описание проблемы

Работая в одной государственной организации столкнулся с продуктом компании ИнфоТеКС под названием 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 минут), и по получению почты ждем уведомления.

Была ли эта статья Вам полезна?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.