Проблема с конфликтующими надстройками Outlook

В настоящее время у нас есть команда, которая использует надстройку Outlook (назовем ее надстройкой A), которую мы разработали для себя, которая прикрепляется к событию отправки, и, если соблюдаются некоторые правила, касающиеся адреса отправителя и темы, отображается форма, данные записывается в базу данных SQL и отправляется электронное письмо. Это прекрасно работает.

Мы также только что внедрили в масштабах всей компании стороннюю надстройку Outlook (назовем ее надстройкой B), которая проверяет все отправляемые вами электронные письма, чтобы узнать, отправляются ли они на внешний адрес, и, если да, спрашивает, хотите ли вы Вы уверены, что хотите отправить. Опять же, это работает нормально.

Проблема в том, что эти два явления сочетаются. Хотя нет технических проблем, когда они конфликтуют или что-то в этом роде, существует потенциальная логическая ошибка, когда вы можете попытаться отправить электронное письмо, надстройка A срабатывает, пользователь заполняет форму, и данные записываются в базу данных. Затем срабатывает надстройка B, предупреждает пользователя, что он отправляет внешнее электронное письмо, он отказывается от отправки, и весь процесс отменяется. Однако база данных была обновлена, чтобы сказать, что она была отправлена, что неверно.

Я изо всех сил пытаюсь придумать какой-либо способ предотвратить это - если бы мы могли заставить надстройку B срабатывать перед надстройкой A, это решило бы проблемы, но я почти уверен, что вы не можете указать порядок, в котором каждая надстройка должна запускаться или быть включена, и мы не можем контролировать код надстройки B, поскольку это сторонний продукт.

Любые предложения, чтобы предотвратить это как возможный результат?


person alfredbulbasaur    schedule 14.05.2015    source источник


Ответы (1)


Прежде всего, вы можете обработать событие ItemAdd папки «Отправленные» в Outlook, чтобы убедиться, что почтовый элемент (элемент Outlook) был отправлен точно. Имейте в виду, что для папки "Отправленные" можно указать среду выполнения с помощью SaveSentMessageFolder класса MailItem.

Также вы можете выбрать имя ProgID для надстройки, чтобы убедиться, что ваша надстройка загружается позже других. События запускаются в обратном порядке. Но все эти факты не подтверждены документально и могут быть изменены в любой момент. Никто не может гарантировать, что он будет стабильно работать все время.

person Eugene Astafiev    schedule 14.05.2015