2016-10-05 4 views
0

私はRedemptionを使用するOutlookアドインで作業しています。アドインの機能の一部は、ユーザーが複数の受信者をメールアイテムに一度に追加できるようにすることです。 Redemptionの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のメールアイテムに表示されません。私は、拡張MAPIプロパティの変更が自動的に既存のメールアイテムに反映されないと推測しています。これらの変更を表示するためにメールアイテムを更新する方法はありますか?

答えて

0

MailItem.UserProperties.Addを使用してユーザープロパティを追加してから削除することをお勧めします。これは、OOMに強制的に受信者リストを更新させるようです。 OOMを使用してアイテムを表示する前に、その方法で私は運が良かった。アイテムが既に表示されている間に動作するかどうかはわかりません。

+0

ご返信ありがとうございます、Dimitry。私はあなたが提案したアプローチを試みました。残念ながら、それはリフレッシュを強制しませんでした。私は他の試みをしています。その間に、他のアイデアがあれば教えてください。 –

+0

メッセージが表示される前に受信者を追加できますか? –

+0

ユーザーが受信者を追加できるようにするコントロールは、実際にはmailitemインスペクタ自体のフォーム領域に埋め込まれているため、受信者を追加する前にメッセージを開く必要があります。 –

関連する問題