在创建邮件时,在 Outlook 插件(C#)中读取 Outlook 附件内容

4
我正在尝试在VS 2010中开发Outlook插件。它的目的是扫描电子邮件正文和附件内容以查找某些关键词,如果发现任何这样的单词,则应阻止邮件发送。 我能够读取邮件正文和主题并进行验证,但我不明白如何在撰写邮件时读取附件内容(txt文件)。
attachment.GetTemporaryPath()没有提供附件路径。我猜这只适用于收件箱中的邮件。 我找到的一种方法是将附件保存到临时文件夹并读取它(attachment.saveAs())。 这是读取撰写邮件时附件内容的唯一方式吗?
可能是重复问题:C# Outlook 2007 - How do I access attachment contents directly from my addin? 但是如建议所述,我不能使用Redemption。还有其他方法吗?
1个回答

4
是的,将附件数据保存到临时文件并读取是唯一的方式。理论上,您可以使用Attachment.PropertyAccessor.GetProperty来读取PR_ATTACH_DATA_BIN属性,但对于大型(> 64kB)文件,您会遇到问题。
您还可以使用扩展MAPI打开附件数据作为IStream (IAttach::OpenProperty(PR_ATTACH_DATA_BIN, IID_IStream)),但仅可通过C++或Delphi访问。您可以使用Redemption(任何语言 - 我是其作者)包装扩展MAPI,并在RDOAttachment和由Safe*Item对象公开的Attachment对象上公开AsArrayAsText属性。

谢谢您的回复。我将尝试使用 PropertyAccessor.GetProperty 方法。 - Sravan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接