创建邮件时在 Outlook 加载项 (C#) 中读取 Outlook 附件内容
Read Outlook attachment content in Outlook add-in (C# ) while creating a mail
我正在尝试在 VS 2010 中开发一个 outlook 插件。它的目的是扫描电子邮件正文和附件内容中的某些关键字,如果找到任何此类关键字,则应阻止电子邮件发送。
我能够阅读电子邮件正文和主题并进行验证,但我不明白如何在撰写邮件时阅读附件内容(txt 文件)。
attachment.GetTemporaryPath() 没有提供附件路径。我想这只适用于收件箱中的邮件。
我发现的一种方法是将附件保存到临时文件夹并读取它 (attachment.saveAs())。
这是在撰写邮件时阅读附件内容的唯一方法吗?
可能重复:C# Outlook 2007 - How do I access attachment contents directly from my addin?
但是按照那里的建议,我不能使用救赎。还有其他办法吗?
是的,将附件数据保存到临时文件并读取它是唯一的方法。理论上,您可以使用 Attachment.PropertyAccessor.GetProperty
来读取 PR_ATTACH_DATA_BIN
属性,但是对于大型 (> 64kB) 文件,您会 运行 遇到问题。
您也可以使用扩展 MAPI 将附件数据打开为 IStream
(IAttach::OpenProperty(PR_ATTACH_DATA_BIN, IID_IStream)
),但只能通过 C++ 或 Delphi 访问。您可以使用 Safe*Item
对象公开的 Redemption (any language - I am its author) that wraps Extended MAPI and exposes AsArray
and AsText
properties on both RDOAttachment and the Attachment 对象。
我正在尝试在 VS 2010 中开发一个 outlook 插件。它的目的是扫描电子邮件正文和附件内容中的某些关键字,如果找到任何此类关键字,则应阻止电子邮件发送。 我能够阅读电子邮件正文和主题并进行验证,但我不明白如何在撰写邮件时阅读附件内容(txt 文件)。
attachment.GetTemporaryPath() 没有提供附件路径。我想这只适用于收件箱中的邮件。 我发现的一种方法是将附件保存到临时文件夹并读取它 (attachment.saveAs())。 这是在撰写邮件时阅读附件内容的唯一方法吗?
可能重复:C# Outlook 2007 - How do I access attachment contents directly from my addin?
但是按照那里的建议,我不能使用救赎。还有其他办法吗?
是的,将附件数据保存到临时文件并读取它是唯一的方法。理论上,您可以使用 Attachment.PropertyAccessor.GetProperty
来读取 PR_ATTACH_DATA_BIN
属性,但是对于大型 (> 64kB) 文件,您会 运行 遇到问题。
您也可以使用扩展 MAPI 将附件数据打开为 IStream
(IAttach::OpenProperty(PR_ATTACH_DATA_BIN, IID_IStream)
),但只能通过 C++ 或 Delphi 访问。您可以使用 Safe*Item
对象公开的 Redemption (any language - I am its author) that wraps Extended MAPI and exposes AsArray
and AsText
properties on both RDOAttachment and the Attachment 对象。