【发布时间】:2020-10-19 16:41:45
【问题描述】:
我想在发送电子邮件时访问每个收件人的 MAPI 属性 PR_RECIPIENT_TRACKSTATUS_DELIVERY。
在电子邮件发送事件中,使用以下代码会生成错误:对象不支持属性“http://schemas.microsoft.com/mapi/proptag/0x5FF5000A”。
private void MailItem_Send(object item, ref bool cancel)
{
Outlook.MailItem mailItem = item as Outlook.MailItem;
var recDelivery = "";
foreach (Outlook.Recipient r in mailItem.Recipients)
{
try
{
recDelivery = r.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x5FF5000A"); //PR_RECIPIENT_TRACKSTATUS_DELIVERY - generates error
}
catch (Exception ex)
{
recDelivery = ex.Message;
}
}
}
是否可以在发送事件期间使用 Outlook 的 MAPI 对象模型访问此属性的数据?如果不是,在 Outlook 邮件项的状态中是否存在属性数据可用的特定点? 请注意,如果在尝试访问 MAPI 属性之前明确保存电子邮件 (Outlook.MailItem.Save()),则会出现相同的错误。
此外,如果将 PR_RECIPIENT_FLAGS 属性添加到上面的代码块中,我可以访问数据。例如
var recipientFlag = r.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x5FFD0003"); //PR_RECIPIENT_FLAGS
提前谢谢你。
【问题讨论】:
标签: outlook-addin mapi