Поделиться через


Пометка почтовых элементов от руководителя к исполнению

В этом примере показывается способ пометки элементов электронной почты, полученных от руководителя пользователя для исполнения.

Пример

Примечание.

Приведенный ниже пример кода взят из книги Программирование приложений для Microsoft Office Outlook 2007.

В Microsoft Outlook предусмотрена система пометки задач, в которой определенные элементы Outlook, такие как элементы почты или контактов, могут быть помечены для исполнения. При пометке элемента Outlook для исполнения сведения об этом элементе наряду с другими сведениями о задаче отображаются в списке дел и в модуле навигации календаря интерфейса пользователя Outlook. В обычной конфигурации окна обозревателя Outlook список дел отображается в виде вертикальной панели. В нем содержится элемент управления "Календарик", предстоящие встречи и элементы, помеченные для выполнения. Сам по себе список дел не является расширяемым, и параметры конфигурации для списка дел можно установить только с помощью интерфейса пользователя Outlook. Пометка элементов позволяет организовывать и устанавливать приоритеты задач и элементов для выполнения.

В примере кода ниже помечается группа элементов для исполнения в указанном интервале. В примере возвращаются все элементы в папке "Входящие" текущего пользователя, полученные от руководителя текущего пользователя, с помощью запроса DASL, чтобы отфильтровать сообщения типа "IPM.NOTE" с именем руководителя в качестве отправителя. Затем помечаются все элементы в соответствии со значением OlImportance свойства Importance. С помощью метода MarkAsTask(OlMarkInterval) все элементы высокой важности помечаются к исполнению сегодня, а все элементы обычной важности — к исполнению на текущей неделе.

Примечание.

Свойство Importance и метод MarkAsTask являются элементами объекта Item.

Если вы используете Visual Studio для тестирования этого примера кода, сначала добавьте ссылку на компонент Microsoft Outlook 15.0 Object Library и задайте переменную Outlook при импорте пространства имен Microsoft.Office.Interop.Outlook. Инструкция using не должна находиться непосредственно перед функциями в примере кода, но ее нужно добавить перед объявлением общедоступного класса. В следующей строке кода показано, как выполнить импорт и назначение в C#.

using Outlook = Microsoft.Office.Interop.Outlook;
private void DemoTaskFlagging()
{
    const string PR_SENT_REPRESENTING_NAME =
        "http://schemas.microsoft.com/mapi/proptag/0x0042001E";
    const string PR_MESSAGE_CLASS =
        "http://schemas.microsoft.com/mapi/proptag/0x001A001E";
    Outlook.AddressEntry currentUser =
        Application.Session.CurrentUser.AddressEntry;
    if (currentUser.Type == "EX")
    {
        Outlook.ExchangeUser manager;
        try
        {
            manager = currentUser.
                GetExchangeUser().GetExchangeUserManager();
        }
        catch
        {
            Debug.WriteLine("Could not obtain user's manager.");
            return;
        }
        if (manager != null)
        {
            string displayName = manager.Name;
            string filter = "@SQL=" + "\""
                + PR_SENT_REPRESENTING_NAME + "\""
                + " = '" + displayName + "'" + " AND " + "\""
                + PR_MESSAGE_CLASS + "\"" + " = 'IPM.NOTE'";
            Outlook.Items items =
                Application.Session.GetDefaultFolder(
                Outlook.OlDefaultFolders.olFolderInbox).
                Items.Restrict(filter);
            foreach (Outlook.MailItem mail in items)
            {
                if (mail.Importance ==
                    Outlook.OlImportance.olImportanceHigh)
                {
                    mail.MarkAsTask(Outlook.OlMarkInterval.olMarkToday);
                    mail.Save();
                }
                if (mail.Importance ==
                    Outlook.OlImportance.olImportanceNormal)
                {
                    mail.MarkAsTask(Outlook.OlMarkInterval.olMarkThisWeek);
                    mail.Save();
                }
            }
        }
    }
}

См. также