Вы можете сделать это с помощью категорий в 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)