问题描述
我正在尝试在我的已发送文件夹中创建一个 mailItem 的副本。创建后,我将 msg 保存在文件夹中。它适用于所有 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();
}
解决方法
在调用此方法来获取 RDOAttachment 对象之前,我使用了 session.GetRDOObjectFromOutlookObject。但是在使用这个之后: session.GetRDOObjectFromOutlookObject 我无法保存邮件项目。 Save 没有被执行,因此 EntryId 没有被生成。由于这个问题,我在这里收到一个错误:RDOMail originalmsg = Globals.ThisAddIn.session.GetMessageFromID(mailItem.EntryID);说“无效的条目 ID”。我安装了解决此问题的新版本兑换。