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


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