私は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プロパティの変更が自動的に既存のメールアイテムに反映されないと推測しています。これらの変更を表示するためにメールアイテムを更新する方法はありますか?
ご返信ありがとうございます、Dimitry。私はあなたが提案したアプローチを試みました。残念ながら、それはリフレッシュを強制しませんでした。私は他の試みをしています。その間に、他のアイデアがあれば教えてください。 –
メッセージが表示される前に受信者を追加できますか? –
ユーザーが受信者を追加できるようにするコントロールは、実際にはmailitemインスペクタ自体のフォーム領域に埋め込まれているため、受信者を追加する前にメッセージを開く必要があります。 –