无法使用 C# 在 Outlook 中保存带有受保护附件的邮件项目

Not able to save a mailItem with protected attachment in outlook using c#

我正在尝试在我的已发送文件夹中创建一个 mailItem 的副本。创建它后,我将消息保存在文件夹中。它适用于所有 mailItems ,除了当我尝试保存带有附件的 mailItem 时我不允许在 outlook 中保存附件权限。为什么 mailItem.Save() 不只为这种情况保存 mailItem? 在下面的代码中,我使用兑换在已发送文件夹中创建副本。 msg.save() 保存除了我上面提到的那封邮件以外的所有邮件。我也尝试在创建之前保存 mailItem,但它不会生成 entryId。

static void CreateSentFolderMail(Redemption.SafeMailItem newSentMail, string nvdID, Outlook.MailItem mailItem, Redemption.SafeMailItem safeMailItem)
{       
    RDOFolder folder = Globals.ThisAddIn.session.GetDefaultFolder(rdoDefaultFolders.olFolderSentMail);
    RDOMail msg = (RDOMail)folder.Items.Add(newSentMail);
    RDOMail originalmsg = Globals.ThisAddIn.session.GetMessageFromID(mailItem.EntryID);
    msg.Sent = true;
    msg.SentOn = DateTime.Now;
    msg.ReceivedTime =msg.CreationTime;
    msg.Subject = safeMailItem.Item.Subject;
    msg.To = safeMailItem.Item.To;
    msg.BCC = safeMailItem.Item.BCC;
    msg.Body = safeMailItem.Item.Body;
    msg.Recipients = originalmsg.Recipients;
    msg.Sender = Globals.ThisAddIn.session.CurrentUser;
    msg.SentOnBehalfOf = Globals.ThisAddIn.session.CurrentUser;
    msg.SetProps(NVDMailHeaderUtils.PS_INTERNET_HEADERS + NVDMailHeaderUtils.NVD_HEADER_ID, nvdID);
    msg.Save();
} 

我在调用此方法之前使用了 session.GetRDOObjectFromOutlookObject 来获取 RDOAttachment 对象。但是在使用这个之后: session.GetRDOObjectFromOutlookObject 我无法保存邮件项目。未执行保存,因此未生成 EntryId。由于这个问题,我在这里遇到错误:RDOMail originalmsg = Globals.ThisAddIn.session.GetMessageFromID(mailItem.EntryID);说“无效的条目 ID”。我安装了新版本的redemptions解决了这个问题。