Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发送带有自定义属性的邮件并进行兑换_C#_.net_Outlook Addin_Outlook 2007_Outlook Redemption - Fatal编程技术网

C# 发送带有自定义属性的邮件并进行兑换

C# 发送带有自定义属性的邮件并进行兑换,c#,.net,outlook-addin,outlook-2007,outlook-redemption,C#,.net,Outlook Addin,Outlook 2007,Outlook Redemption,我正在使用Redemption.dll为我的消息设置自定义属性,并使用C#中的set_field()和get_field()。在我发信息之前,一切都很顺利。 在Outlook中,我使用RDOMail.Send()将邮件发送到Drafts文件夹。然后我在Redemption常见问题解答中读到,我应该使用IMessage::Submit()方法(我在.NET的dll中找不到),然后使用DeliverNow(),我确实使用了该方法,但令我惊讶的是,当我收到邮件时,我丢失了设置的属性。 这对我们的项目来

我正在使用Redemption.dll为我的消息设置自定义属性,并使用C#中的set_field()和get_field()。在我发信息之前,一切都很顺利。 在Outlook中,我使用RDOMail.Send()将邮件发送到Drafts文件夹。然后我在Redemption常见问题解答中读到,我应该使用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
     {
     }
}     

谢谢。

通过SMTP发送邮件时(与同一域中的两个Exchange邮箱不同),邮件将转换为MIME,并且所有特定于MAPI的属性都将丢失

如果您使用了一个名为UseTnef的特殊命名属性,则可以强制Outlook以TNEF(臭名昭著的winmail.dat)格式发送邮件:


RDOMail.Fields[“{00062008-0000-0000-C000-0000000000 46}/8582000B”]=true

通过SMTP发送邮件时(与同一域中的两个Exchange邮箱不同),邮件将转换为MIME,并且所有特定于MAPI的属性都将丢失

如果您使用了一个名为UseTnef的特殊命名属性,则可以强制Outlook以TNEF(臭名昭著的winmail.dat)格式发送邮件:

RDOMail.Fields[“{00062008-0000-0000-C000-0000000000 46}/8582000B”]=true