Redemption.dll を使用して、C# で set_Filed() と get_field() を使用してメッセージにカスタム プロパティを設定しています。メッセージを送信する瞬間まで、すべてが完全に機能します。Outlook から RDOMail.Send() を使用すると、メッセージが下書きフォルダーに送信されます。次に、Redemption FAQ を読み、IMessage::Submit() メソッド (.NET の dll のどこにも見つからなかった) を使用し、DeliverNow() を使用する必要があることを読みました。メッセージを受信すると、設定したプロパティが失われます。Outlook がメールを送信できなければ意味がないので、これは私たちのプロジェクトにとって非常に重要です。
これが私のコードの一部です。
private void adxOutlookEvents_ItemSend(object sender, AddinExpress.MSO.ADXOlItemSendEventArgs e)
{
try
{
RDOSessionClass _RDOSession= MessagesActions.GetRDOSession();
Outlook.MailItem _MailItem= e.Item as Outlook.MailItem;
RDOMail _RdoMail = MessagesActions.GetRDOMail(_RDOSession, _MailItem);
_RdoMail.Send(); // Send using Redeption
e.Cancel = true; // Only send using Redeption
if (_RdoMail != null && Marshal.IsComObject(_RdoMail))
Marshal.ReleaseComObject(_RdoMail);
Redemption.MAPIUtils _MAPIUtils = new MAPIUtils();
_MAPIUtils.DeliverNow(0, 0);
if (_MAPIUtils != null && Marshal.IsComObject(_MAPIUtils))
Marshal.ReleaseComObject(_MAPIUtils);
CurrentInspector.Close(Outlook.OlInspectorClose.olDiscard);
}
catch
{
}
}
ありがとう。