Отметки элемента электронной почты надстройки Outlook - PullRequest
1 голос
/ 03 февраля 2011

Мне нужен совет. Мы разрабатываем надстройку для Outlook с помощью .net, и мне нужно выяснить, есть ли способ создать собственную маркировку для писем. Нам необходимо выполнить операцию с электронной почтой в зависимости от того, выполнялась ли она ранее с этой электронной почтой или нет, и отобразить это условие в пользовательском интерфейсе Outlook (например, «прочитано», «непрочитано»). Не могли бы вы что-нибудь посоветовать?

1 Ответ

2 голосов
/ 03 февраля 2011

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

Для вашей конкретной проблемы вы должны обработать электронные письма, а затем использовать категорию, чтобы отметить, что вы уже обработали эти электронные письма. Поскольку ярлыки категорий также отображаются в пользовательском интерфейсе, пользователь сможет их легко увидеть.

Private Shared ReadOnly CATEGORY_TEST As String = "Custom Overdue Activity"

' This method checks if our custom category exists, and creates it if it doesn't.
Private Sub SetupCategories()
    Dim categoryList As Categories = Application.Session.Categories
    For i As Integer = 1 To categoryList.Count
        Dim c As Category = categoryList(i)
        If c.Name.Equals(CATEGORY_TEST) Then
            Return
        End If
    Next

    categoryList.Add(CATEGORY_TEST, Outlook.OlCategoryColor.olCategoryColorDarkOlive)
End Sub


' This snippet creates a new Task in Outlook, and assigns the category.
' The process for categories is similar when putting them on an email instead.
' Some of the data here is coming from a web service call in a larger app, you can ignore that. :)
 Dim task As Outlook.TaskItem = DirectCast(Application.CreateItem(Outlook.OlItemType.olTaskItem), Outlook.TaskItem)
                task.DueDate = Date.Parse(activity.ActDate)
                task.StartDate = task.DueDate
                task.Subject = String.Format(subjectText, activity.AppID)
                task.Body = String.Format(bodyText, activity.AppID, activity.FileNum, activity.AppID)
                task.ReminderTime = Now.AddMinutes(10)
                task.ReminderSet = True
                task.Categories = CATEGORY_TEST
                task.Save()
                task.Close(OlInspectorClose.olDiscard)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...