如何将 RTF 附件复制到新的邮件项目中?
How do you copy RTF attachments into a new mailitem?
我正在使用 C# Outlook 对象模型(使用一些 C++ 扩展 MAPI 来解码 RTF 邮件的 TNEF),并试图找到一种方法从我使用 tnef 解码的邮件中获取附件(我将此邮件作为共享项打开以访问其内容),并将这些附件添加到新的邮件项中。我对这些附件的观察是,它们要么包含文件名 "UTF8 Hex: xxxx.msg" 用于邮件附件,要么显示 null
用于 attachment.filename
,显示名称显示"UTF8 Hex: xxxx"。我知道这些没有文件名的附件是 pdf/docx 文件,因为我自己附加了它们进行测试,但是无法从十六进制编码的显示名和空文件名中识别它们。
(其中xxxx代表一长串十六进制数)
我在执行此操作时附加 HTML 附件时通常会使用 attachment.FileName
并执行 attachment.SaveAsFile(filename)
,然后执行 newmailitem.Attachments.Add(savedfile)
但是附件中找不到文件名,显示名也没有显示任何有用的信息,我不知道应该如何为 RTF 邮件做同样的事情。
如有任何帮助,我们将不胜感激!
没有嵌入式 OLE 附件的文件名。它们甚至不是文件,它们是 IStorage
个对象。您可以从 IStorage
对象内的流中提取文件数据。
您明确解析 TNEF 数据而不是使用 OpenTnefStreamEx 是否有特殊原因?
如果使用 Redemption (I am its author) is an option, is version of RDOAttachment。SaveAsFile
从引擎盖下的 IStorage
对象中提取附件数据。
另请注意,如果您想将整个消息复制到另一条消息中,则无需处理附件等 - 您可以调用 RDOMail.CopyTo()
并将另一个对象作为参数传递。
我正在使用 C# Outlook 对象模型(使用一些 C++ 扩展 MAPI 来解码 RTF 邮件的 TNEF),并试图找到一种方法从我使用 tnef 解码的邮件中获取附件(我将此邮件作为共享项打开以访问其内容),并将这些附件添加到新的邮件项中。我对这些附件的观察是,它们要么包含文件名 "UTF8 Hex: xxxx.msg" 用于邮件附件,要么显示 null
用于 attachment.filename
,显示名称显示"UTF8 Hex: xxxx"。我知道这些没有文件名的附件是 pdf/docx 文件,因为我自己附加了它们进行测试,但是无法从十六进制编码的显示名和空文件名中识别它们。
(其中xxxx代表一长串十六进制数)
我在执行此操作时附加 HTML 附件时通常会使用 attachment.FileName
并执行 attachment.SaveAsFile(filename)
,然后执行 newmailitem.Attachments.Add(savedfile)
但是附件中找不到文件名,显示名也没有显示任何有用的信息,我不知道应该如何为 RTF 邮件做同样的事情。
如有任何帮助,我们将不胜感激!
没有嵌入式 OLE 附件的文件名。它们甚至不是文件,它们是 IStorage
个对象。您可以从 IStorage
对象内的流中提取文件数据。
您明确解析 TNEF 数据而不是使用 OpenTnefStreamEx 是否有特殊原因?
如果使用 Redemption (I am its author) is an option, is version of RDOAttachment。SaveAsFile
从引擎盖下的 IStorage
对象中提取附件数据。
另请注意,如果您想将整个消息复制到另一条消息中,则无需处理附件等 - 您可以调用 RDOMail.CopyTo()
并将另一个对象作为参数传递。