是否可以直接将MailItem作为流返回?
(来自MailItemMicrosoft.Office.Interop.Outlook

现在,我找到了一个临时解决方案,首先将MailItem保存到目录,将其打开并将流返回到文件,然后再次删除该文件。

在处理大量电子邮件时,这种临时解决方案的速度很慢,我想用例如直接将MailItem作为MemoryStream返回。

如何才能做到这一点?

(由于注释而进行编辑:缓慢是其中一部分,但是另一代码部分(无法修改)仅接受一个Stream,这就是我在寻找一种将MailItem作为Stream打开的解决方案的方式)

最佳答案

我想到了您的缓慢问题。在写我的文章时,我遇到了可能会产生重大变化的事情。

可以这么说,当我在非缓存模式下使用Outlook时,检索并打开每封电子邮件,然后将其移动到已处理的文件夹很困难。当我将其置于缓存模式时,当然,我必须编写代码以确保它不费心地同步所有内容,因此在开始之前我必须拥有最新的信息。

当它被缓存时,您可以同时打开许多邮件项目,并进行并行处理,在非缓存模式下,它经常使您停在32位左右!和开放(和我们的)理念不同。

因此,我也尝试了一个imap类,但不要再说那是什么错误了。

如果您有一些代码,也许我们可以提供帮助?如果您没有缓存模式,我可能可以挖掘出我是如何强制它同步所有代码的,它并不是我想的那么好简单(我可能错过了什么),但是它运行非常可靠,现在可以处理所有备份电子邮件我知道了

关于c# - Outlook MailItem作为流,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11227797/

10-11 03:34