我正在开发一种产品,通过生成一个HTML文档来创建MS Word输出,其中嵌入了适当的Word CSS和XML魔术。我现在需要在文档中嵌入RTF(图像和样式文本),因此我正在研究.NET中的多部分HTML生成功能。
我想通过将RTF片段转换为内存中的图像来生成MHTML文档,然后将Base64编码的数据直接嵌入到MHTML对象中。到目前为止,我找不到任何.NET解决方案来做到这一点。
MS CDO stuff很有希望,但看起来创建附件的唯一方法是提供数据的URL并使用AddRelatedBodyPart()将其添加到对象中。
System.Net.Mail包看起来也很引人注目(如文档here和之前的问题here),但我没有看到将生成的邮件对象转换为a的简单方法string - API似乎专注于发送邮件,而不是生成文件。
现在,我正在推进使用CDO和临时目录的方法,但我对此不满意作为一种长期方法。还有更好的建议吗?
答案 0 :(得分:1)
对于System.Net.Mail将其输出发送到用户定义的某种流的能力的需求并不是很多,但已经讨论过了。你能给我更多关于你的情景的信息吗?我想知道人们在添加此功能的合理性方面如何使用它。
我认为您可以在发送消息之前使用反射将输出流从FileStream重定向到其他流。 System.Net.Mail中的大多数代码都使用Stream对象周围的装饰器,所以我怀疑它是可能的,但我不知道反射是否足以给你一个很好的代码片段来说明如何做到这一点。此外,System.Net.Mail使用自己的base64编码器,因此速度非常快。我为.Net 4.0调整了一些东西,所以你可能会从中获得更好的性能,尽管我怀疑它会是不可能的。
答案 1 :(得分:0)
.NET中的Base64编码支持不是很快,System.Net.Mail不是通用的。我使用CHilkat S/MIME结束了它并且工作正常。