我一直在努力与Outlook集成。我想在Outlook邮件项目的BillingInformation或Mileage属性中存储我的应用程序中的唯一ID。虽然集成似乎在我的应用程序端工作,但Outlook似乎没有捕获信息。在修改Outlook消息表单时,在发送前的显示时间,包括BillingInformation字段,我能够看到该值,但只有这样,而不是任何后续尝试。我所有试图永久修改消息表单的尝试都证明是徒劳的。我将不胜感激任何帮助。代码如下。
//Instantiate the Outlook Email object
Outlook.Application olApp = new Outlook.Application();
Outlook.MailItem eMail = olApp.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem;
// Define and map Email data
eMail.Subject = row.Name;
eMail.Body = row.Notes;
string act = row.ActivityID.ToString();
eMail.BillingInformation = act;
答案 0 :(得分:0)
仅当邮件永远不会转换为MIME格式时才会起作用 - 这意味着邮件必须在同一域中的2个Exchange邮箱之间发送,或者必须以RTF格式发送(臭名昭着的winmail.dat - 它保留所有MAPI特定属性)。
您可以使用MailItem.PropertyAccessor.SetProperty
(例如MailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/X-Test", "MyValue")
)在PS_INTERNET_HEADERS命名空间中设置命名属性,从而为外发电子邮件添加MIME标头。然后,您可以使用http://schemas.microsoft.com/mapi/proptag/0x007D001F
读取PR_TRANSPORT_MESSAGE_HEADERS属性(DASL名称MailItem.PropertyAccessor.GetProperty
)来读取接收方的属性。