2016-10-05 40 views
0

我正在使用Redemption的Outlook加載項。部分加載項的功能是允許用戶一次將多個收件人添加到mailitem。兌換的rdoRecipients對象包含一個「addmultiple」方法,可以提高此區域中加載項的性能。我的代碼如下所示(rdoSession已創建):使用RDOMail.Recipients.AddMultiple添加收件人以打開Outlook mailitem

Redemption.RDOMail rdoMail = null; 
Outlook.MailItem mailItem = (Outlook.MailItem)activeInspector.CurrentItem; 
if (mailItem != null) 
{ 
    mailItem.Save(); 

    rdoMail = mAddinModule.RdoSession.GetRDOObjectFromOutlookObject(mailItem); 

    List<object> toList = new List<object>(); 

    // some code populating toList 

    Array toRcps = toList.ToArray(); 

    rdoMail.Recipients.AddMultiple(toRcps, (int)Outlook.OlMailRecipientType.olTo); 
    rdoMail.Recipients.ResolveAll(); 
    rdoMail.Save(); 

} 

代碼可以正常運行。使用OutlookSpy我可以看到MAPI收件人表格包含正確的地址。另外,如果我添加一行rdoMail.Display(),則會顯示一個顯示正確地址的新郵件項目。但是,地址不會顯示在原始Outlook mailitem中。我猜測擴展MAPI屬性的更改不會自動反映到現有的mailitem中。有沒有一種方法可以更新mailitem以顯示這些更改?

回答

0

您可能想嘗試使用MailItem.UserProperties.Add添加用戶屬性(然後將其刪除) - 似乎強制OOM刷新收件人列表。在使用OOM顯示項目之前,我很幸運,不知道它是否會在物品已被顯示的情況下工作。

+0

非常感謝您的快速響應,Dimitry。我嘗試了你建議的方法。不幸的是,它沒有強制刷新。我正在嘗試其他嘗試,並會發布,如果我找到任何可行的。同時,如果您有任何其他想法,請讓我知道。 –

+0

您可以在顯示消息之前添加收件人嗎? –

+0

允許用戶添加收件人的控件實際上嵌入在mailitem檢查器本身的表單區域中,因此需要在添加收件人之前打開郵件。 –

相關問題