我正在使用 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
{
}
}
谢谢。