1

我正在开发一种产品,该产品通过生成一个 HTML 文档来创建 MS Word 输出,其中嵌入了适当的 Word CSS 和 XML 魔法。我现在需要在文档中嵌入 RTF(图像和样式文本),因此我正在研究 .NET 中的多部分 HTML 生成功能。

我想通过将 RTF 片段转换为内存中的图像来生成 MHTML 文档,然后将 Base64 编码的数据直接嵌入到 MHTML 对象中。到目前为止,我找不到任何 .NET 解决方案来做到这一点。

MS CDO的东西很有希望,但看起来创建附件的唯一方法是提供数据的 URL 并使用AddRelatedBodyPart()将其添加到对象中。

System.Net.Mail 包看起来也很吸引人(如此和之前的问题中所述,但我没有看到将生成的邮件对象转换为字符串的简单方法——API 似乎专注于发送邮件消息,不生成文件。

现在,我正在推进一种使用 CDO 和临时目录的方法,但我对这种长期方法并不满意。有更好的建议吗?

4

2 回答 2

1

对 System.Net.Mail 将其输出发送到用户定义的某种流的能力的需求并不多,但已经讨论过了。你能给我更多关于你的场景的信息吗?我想知道人们在添加此功能的理由方面是如何使用它的。

我认为您可以在发送消息之前使用反射将输出流从 FileStream 重定向到其他流。System.Net.Mail 中的大部分代码都在 Stream 对象周围使用装饰器,所以我怀疑这是可能的,但我不太了解反射,无法为您提供有关如何执行此操作的良好代码片段。此外,System.Net.Mail 使用自己的 base64 编码器,因此速度非常快。我还为 .Net 4.0 调整了一些东西,因此您可能会从中获得更好的性能,尽管我怀疑它是否会引起注意。

于 2009-08-25T18:24:12.183 回答
0

.NET 中的 Base64 编码支持不是很快,而且 System.Net.Mail 不是通用的。我最终使用了CHilkat S/MIME,它运行良好。

于 2009-08-21T02:04:29.427 回答