C ++ Outlook MailItem заменить тело и сбросить при закрытии

У меня есть надстройка в Outlook, которая добавляет предупреждение для mailbody и ссылки в письме, когда электронная почта приходит из внешних или ненадежных источников.
В любом случае, когда я заменяю что-то в теле, когда электронная почта открывается в полном представлении (нет панели чтения, двойной щелчок на полном просмотре почтового элемента), я перехватываю mailItem и даже закрываю изменения, все работает хорошо. (mailitem.onclose(olDiscard))

Когда я делаю это с панелью чтения, когда я отменяю изменения, Outlook все еще либо сохраняет изменения, либо когда пользователь пытается закрыть Outlook, он спрашивает пользователя «Хотите ли вы сохранить изменения в …..», и если пользователь нажал на нескольких электронных письмах в течение этого периода он показывает всплывающий вопрос для ВСЕХ электронных писем, по которым пользователь нажал, и мы заменили его тело.

Какое решение здесь? Что я могу сделать, чтобы это исправить? Я хочу внести изменения в ссылку и текст, но откажусь от них, когда пользователь откажется от другого письма. Конечной целью является отсутствие Outlook, чтобы спросить у пользователя всплывающие окна «Хотите сохранить изменения …». Пожалуйста, порекомендуйте.

Я также не могу вносить изменения в Инспектора, потому что Инспектор только для чтения.

Постскриптум Плагин написан на C ++.

0

Решение

Решение состоит в том, чтобы избежать изменения тела сообщения, если вы не хотите сохранять изменения.

Если вы хотите показать предупреждение пользователю, добавьте панель задач в инспектор. Или просто отметьте сообщение категорией — оно будет показано в инспекторе.

0

Другие решения

Объектная модель Outlook не предоставляет ничего для обработки кликов по гиперссылкам. В качестве возможного обходного пути вы можете рассмотреть реализацию следующих функций:

  1. Когда элемент выбран или открыт в Outlook, вы можете заменить исходный URL-адрес своим собственным, где при необходимости вы можете передать исходный URL-адрес в качестве закодированного параметра. Таким образом, если разрешено открывать URL, вы можете перенаправить запрос дальше. Обратите внимание, вы можете использовать SelectionChange событие класса Explorer, которое запускается, когда пользователь выбирает другой или дополнительный элемент Microsoft Outlook программным путем или путем взаимодействия с пользовательским интерфейсом. Это событие также происходит, когда пользователь (программно или через пользовательский интерфейс) щелкает или переключается на другую папку, содержащую элементы, поскольку Outlook автоматически выбирает первый элемент в этой папке. Однако это событие не происходит, если папка является папкой файловой системы или отображается какая-либо папка с текущим веб-представлением.
    Также вы можете рассмотреть возможность обработки открыто событие элементов Outlook, которое запускается при открытии экземпляра родительского объекта в Inspector, Когда это событие происходит, Inspector объект инициализирован, но еще не отображен. Событие Open отличается от Читать событие в этом Read происходит всякий раз, когда пользователь выбирает элемент в представлении, которое поддерживает редактирование в ячейке, а также когда элемент открывается в инспекторе.

  2. Другое возможное решение — зарегистрировать пользовательский обработчик URL. Таким образом, в основном ваше зарегистрированное приложение будет запущено вместо веб-браузера, где вы можете решить, запускать ли веб-браузер и следовать URL-адресу или нет. Увидеть Установка и регистрация обработчиков протокола для дополнительной информации.

0

По вопросам рекламы [email protected]