Outlook,在发送电子邮件时设置MailItem.BillingInformation字段

时间:2016-03-13 23:21:40

标签: c# outlook

我一直在努力与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;

1 个答案:

答案 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)来读取接收方的属性。