当前位置: 首页 > 知识库问答 >
问题:

如何在web应用程序中预览EML文件?

桂高昂
2023-03-14

我需要能够预览EML文件在一个基于Angular/.NET核心APIhtml" target="_blank">构建的web应用程序。我在这里找到了microsoft提供的仅预览Word、Excel或PowerPoint文档的服务。我可以在web应用程序中嵌入这个页面并预览这些文件类型。但是,此服务不支持EML文件。

还有一个通过encryptomatic提供的在线预览EML文件的服务。但它们没有可以嵌入到应用程序中的东西。

Google docs viewer可以预览图像、文本和pdf,但它也不支持预览EML文件。

我需要一个类似于outlook web app预览EML文件的功能。

我已经找到了一些像eml-format这样的可以解析EML文件的npm包。我还知道Aspose提供了EML解析器。然而,我有点犹豫不决的路线,以建立我自己的EML查看器,因为我需要处理嵌入式图像,多部分消息,附件和上帝知道什么!

共有1个答案

淳于涛
2023-03-14
Aspose.Email.MailMessage mailMessage = Aspose.Email.MailMessage.Load(templateStream);
            foreach (var linkedResource in mailMessage.LinkedResources)
            {
                using (var memoryStream = new MemoryStream())
                {
                    linkedResource.ContentStream.CopyTo(memoryStream);
                    string base64String = Convert.ToBase64String(memoryStream.ToArray());
                    mailMessage.HtmlBody = mailMessage.HtmlBody.Replace($"cid:{linkedResource.ContentId}", $"data:{linkedResource.ContentType.MediaType};base64," + base64String);

                }
            }
        }
        mailMessage.HtmlBody = Regex.Replace(mailMessage.HtmlBody, @"\<!--(.|\n)*?-->", "");

以下是我所做的,以防其他人也在寻找同样的解决方案。使用Aspose电子邮件库读取EML/MSG流并从中提取HTML。需要做的另外几件事是用Base64字符串替换内联图像的CID,并使用regex删除注释掉的代码。

 类似资料:
  • 我想在AWS Cloud9上预览我的Ionic应用程序,但它似乎没有显示出来。 我尝试过使用ionic serve——端口8080(因为cloud9只打开了端口8080),它似乎只是显示了早期版本中的旧内容。我还尝试了ionic构建,然后使用http服务器www从www输出提供服务,但没有效果。 爱奥尼亚服务——端口8080爱奥尼亚构建 它不会在预览窗口中显示任何内容。我能够使用http服务器进行

  • 我使用文本5创建pdf文件。我参考 https://developers.itextpdf.com/examples/itext-action-second-edition/chapter-1 并获取pdf。当我打开它时,中文字符显示正常。 但是我开发了像 https://developers.itextpdf.com/examples/itext-action-second-edition/ch

  • 我正在开发一个php/mysql网站,该网站在android上运行于移动chrome浏览器。我想从网站内的链接(a href links)启动本机预装的android应用程序。到目前为止,我已经成功地使用了下面的代码,它适用于2到3个应用程序。在大多数情况下,它试图启动一些东西,但我通常会得到错误:“未找到项目”。 我希望的是能够给用户从我的网站(web应用)内直接启动android应用程序的能力

  • 我想在服务器上部署一个spring mvc中的Java web app build。我使用的是MilesWeb服务器。在尝试将应用程序部署到服务器后,我收到了以下异常日志,描述如下:“服务器遇到内部错误,导致无法满足此请求”。我需要帮助来找出我做错了什么。 你可以检查这个链接后,点击提交我得到上面的错误

  • 码头打开了,但它显示了。 从我的Eclipse控制台 2012年4月15日下午3:50:38 com . Google . app hosting . utils . jetty . JettyLogger INFO INFO:通过com . Google . app hosting . utils . jetty . jetty logger登录到jetty logger(空)在未来的版本中,这

  • 我在网上没有发现任何相关的问题。保存生成的*.eml文件似乎并不流行:)有人能想到解决方案吗? 到目前为止的工作的转储: