Пометка почтовых элементов от руководителя к исполнению
В этом примере показывается способ пометки элементов электронной почты, полученных от руководителя пользователя для исполнения.
Пример
Примечание.
Приведенный ниже пример кода взят из книги Программирование приложений для 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();
}
}
}
}
}