Как избежать предупреждения безопасности Outlook при чтении сообщения Outlook из программы C#

У меня есть требование о чтении темы, адреса отправителя и тела сообщения нового сообщения в моей папке входящих сообщений Outlook из программы на C#. Но я получаю предупреждение системы безопасности: "Программа пытается получить доступ к адресам электронной почты, которые вы сохранили в Outlook. Хочешь ли ты разрешить это?

Некоторым поиском я нашел несколько сторонних COM-библиотек, чтобы избежать этого. Но я ищу решение, которое не требует какой-либо сторонней библиотеки COM.

7 ответов

Решение

Извините, у меня возникла эта досадная проблема как в надстройках Outlook 2003, так и в Outlook 2007, и единственное решение, которое сработало, - это покупка лицензии на погашение. В Outlook 2007 это надоедливое всплывающее окно должно отображаться только в том случае, если ваш брандмауэр не работает или ваше антивирусное программное обеспечение устарело, насколько я помню.

Я столкнулся с той же проблемой при доступе к адресу электронной почты отправителя для почтового сообщения Outlook. Чтобы избежать "предупреждения безопасности", не создавайте новый объект Application, вместо этого используйте Globals.ThisAddIn.Application для создания нового почтового элемента.

string GetSenderEmail(Outlook.MailItem item)
    {
        string emailAddress = "";
        if (item.SenderEmailType == "EX")
        {
            Outlook.MailItem tempItem = (Outlook.MailItem)Globals.ThisAddIn.Application.CreateItem(Outlook.OlItemType.olMailItem);
            tempItem.To = item.SenderEmailAddress;
            emailAddress = tempItem.Recipients[1].AddressEntry.GetExchangeUser().PrimarySmtpAddress.Trim();

        }
        else
        {
            emailAddress = item.SenderEmailAddress.Trim();

        }

        return emailAddress;
    }

Попробуй это

Сервис -> Макрос -> Безопасность -> Программный доступ

Затем выберите Никогда не предупреждать меня о подозрительной активности.

"Но я ищу решение, которое не требует какой-либо сторонней библиотеки COM".

Вы не найдете это. Каспер уже указал на единственное известное мне решение. Погашение было единственной вещью, которая поддерживала плагины и код Outlook для работы. Я сделал коммерческие надстройки Outlook для Франклина Кови. Мы исследовали много вещей, но Искупление было единственным, что помогло нам преодолеть это препятствие.

Если ваше приложение не является подключаемым модулем Outlook, вы можете посмотреть на MAPI для чтения данных из папки "Входящие".

Для этого мы используем Advanced Security for Outlook от Mapilab. Он бесплатный, также для коммерческого использования, и в то же время сохраняет безопасность Outlook (разрешая доступ только из утвержденных приложений). Просто применяется к ранее упомянутым решениям, которые стоят либо денег, либо могут поставить под угрозу безопасность.

Вы можете отключить всплывающее окно безопасности с помощью Outlook Trust Center. Проверьте здесь.

Другие вопросы по тегам