Могу я попросить поддержки по этому вопросу.
У нашего клиента есть сервер Exchange 2019 (работает на Windows Server 2019). Они хотят запускать некоторый код VBA при получении электронного письма на определенный почтовый ящик - 24 часа в сутки - однако -
У них нет сервера, который может запускать Outlook для запуска VBA (сервер доступен 24 часа в сутки), а их клиентские ПК могут отключаться.
Есть ли способ контролировать почтовый ящик и запускать запуск кода VBA при получении электронного письма?
Любая помощь и руководство будут очень благодарны.
Спасибо
Энди
Я не уверен, какие инструменты вам доступны; однако, основываясь на моем прошлом опыте, я бы порекомендовал использовать Управляемый API EWS. Если вы знакомы с PowerShell, позаимствовал немного логики из Модуль EWS Powershell (написано BartekB. Хотя мне пришлось в основном переписать и расширить модуль EWS из GitHub, для ваших целей его должно быть достаточно (если вы достаточно знакомы с PowerShell), чтобы создать скрипт, который подключается к почтовому ящику и ищет сообщения, соответствующие шаблону, и затем активируйте код при получении определенного сообщения.
После этого вызовите сценарий из запланированной задачи, запущенной на компьютере, на котором установлен управляемый API EWS (может быть сервером). Скорее всего, вам потребуется запустить сценарий под учетной записью владельца почтового ящика или вам нужно будет настроить ApplicationImpersonation для рассматриваемого почтового ящика в учетной записи, на которой выполняется сценарий. Учетная запись, запускающая сценарий, должна иметь почтовый ящик или быть пользователем почты.
Вам нужно добавить прослушиватель событий в папку «Входящие», который будет обрабатывать входящие сообщения. И перезапустите Outlook, чтобы код стал активным. Вот похожий статья для справки.