Redemption:RDOMail访问附件和移动邮件

时间:2014-05-07 16:59:52

标签: plugins outlook outlook-redemption

我正在尝试访问RDOMail对象的附件。当我使用LINQ搜索特定项目或者只是尝试使用foreach迭代列表时它会冻结outlook并且不会抛出任何异常。 此外,当我尝试将RDOMail移动到另一个文件夹时,它会冻结Outlook并且不会抛出任何异常。

我可以使用Outlook.MailItem完成这两件事 有人有什么想法吗?

void store_OnNewMail(string entryId)
{
   RDOMail mail = _store.GetMessageFromID(entryId);

   RDOAttachment protocolAttachment = mail.Attachments.Cast<RDOAttachment>().SingleOrDefault(attach => attach.FileName == "protocol.id");

   mail.Move(_hiddenDeliveryTrustFolder);
}

1 个答案:

答案 0 :(得分:0)

我的猜测是,在NewMail事件发生时可用的IMAP4消息只是一个信封消息(仅标题,没有正文或附件)。当您访问附件时,IMAP4提供程序尝试连接到IMAP4服务器以检索数据,但由于在引发事件之前发出了关键部分,因此阻止了该调用。 尝试通过

绕过IMAP4提供程序级别
 RDOStore unwrappedStore = rSession.Stores.UnwarpStore(_store);
 RDOMail mail = unwrappedStore.GetMessageFromID(entryId);

您还可以尝试将消息条目id保存在变量中并启动计时器(使用Forms命名空间中的一个)。当计时器事件触发时(此时您将退出newMail事件),您可以打开该消息并进行处理。