【发布时间】:2023-04-09 16:17:02
【问题描述】:
我正在尝试在我的已发送文件夹中创建一个 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();
}
【问题讨论】:
-
您是否遇到特定错误?
-
另请注意,您正在(可能)通过设置纯文本 Body 属性来擦除 HTML 格式。请注意,您可以通过调用
originalmsg.CopyTo(msg)来复制所有属性。 -
我理解为什么在这种情况下保存失败特别是,这是由于错误:对未保存的消息使用 RDOSession.GetRDOObjectFromOutlookObject 或 Safe*Item 可能会阻止该消息被保存,并且可以在调用 GetRDOObjectFromOutlookObject 几次后引发异常(超过允许的最大挂钩数)。
-
现在我有另一个问题,它的条目 ID。我总是收到 IMapi 无效 entryID 错误。有没有其他方法可以在不使用 entryID 的情况下获取 RDOrecipients?
-
我不确定我是否理解 - 你的意思是你得到了一些条目 id,但是当你尝试使用它时代码失败了?你的代码的相关sn-p是什么?
标签: outlook outlook-redemption mailitem