Получение информации заголовка с помощью c# - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь создать надстройку для Outlook в C#, которая собирает информацию заголовка из новых писем в папке «Входящие». Поиск в Google говорит использовать следующий код, чтобы получить информацию заголовка для электронной почты.

mailitem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001F/")

Однако, когда я использую это, ссылка на объект ошибки не устанавливается на экземпляр объекта. Если щелкнуть адрес схемы, это также говорит о том, что ресурс больше не существует, и есть другой способ получить его или мне нужно использовать другой язык?

Для справки я добавил ниже.

private void Quarantine()
    {

        Outlook.MAPIFolder inBox = (Outlook.MAPIFolder)this.Application.
        ActiveExplorer().Session.GetDefaultFolder
        (Outlook.OlDefaultFolders.olFolderInbox);
        Outlook.Items items = (Outlook.Items)inBox.Items;
        Outlook.MailItem MailItem = null;
        items.Restrict("[UnRead] = true");
        var destFolder = inBox.Folders["test"];
        string StrRegex = @"(Final Score - [-][0-9] | Final Score - [2][0 - 1] | Final Score - [0 - 1][0-9])";
        Regex Reg = new Regex(StrRegex);
        foreach (object email in items)
        {
            MailItem = email as Outlook.MailItem;
               String Header= MailItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001F/");
                if (!(Reg.IsMatch(Header)))
                {
                    MailItem.Move(destFolder);
                }
            }

        }
    }

1 Ответ

0 голосов
/ 10 апреля 2020

as оператор вернет ноль, если объект не является MailItem. Ваш код никогда не проверяет это. В папке «Входящие» могут быть объекты, отличные от MailItem, такие как ReportItem, MeetingItem, et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...