C# 发送带有自定义属性的邮件并进行兑换
我正在使用Redemption.dll为我的消息设置自定义属性,并使用C#中的set_field()和get_field()。在我发信息之前,一切都很顺利。 在Outlook中,我使用RDOMail.Send()将邮件发送到Drafts文件夹。然后我在Redemption常见问题解答中读到,我应该使用IMessage::Submit()方法(我在.NET的dll中找不到),然后使用DeliverNow(),我确实使用了该方法,但令我惊讶的是,当我收到邮件时,我丢失了设置的属性。 这对我们的项目来说非常关键,因为如果Outlook不能发送邮件,那么它就一文不值了 这是我的部分代码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(),我确实使用了该方法,但令我惊讶的是,当我收到邮件时,我丢失了设置的属性。 这对我们的项目来
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