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

Angular 如何在web应用程序中预览EML文件?,angular,.net-core,outlook-addin,outlook-web-addins,eml,Angular,.net Core,Outlook Addin,Outlook Web Addins,Eml,我需要能够在基于Angular/.NETCoreAPI构建的web应用程序中预览EML文件。我找到了微软的一项服务,它只预览Word、Excel或PowerPoint文档。我可以将此页面嵌入web应用程序并预览这些文件类型。但是,此服务不支持EML文件 还有另外一个在线预览EML文件的服务。但是它们没有可以嵌入到应用程序中的东西 Google docs viewer可以预览图像、文本和pdf,但也不支持预览EML文件 我需要一个类似outlook web app预览EML文件的功能 我发现有几个

我需要能够在基于Angular/.NETCoreAPI构建的web应用程序中预览EML文件。我找到了微软的一项服务,它只预览Word、Excel或PowerPoint文档。我可以将此页面嵌入web应用程序并预览这些文件类型。但是,此服务不支持EML文件

还有另外一个在线预览EML文件的服务。但是它们没有可以嵌入到应用程序中的东西

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

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

我发现有几个npm包可以解析EML文件。我还知道Aspose提供了EML解析器。然而,我有点犹豫是否要构建自己的EML查看器,因为我需要处理嵌入的图像、多部分消息、附件和天知道的东西

欢迎提出任何建议。

Aspose.Email.MailMessage=Aspose.Email.MailMessage.Load(templateStream);
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)*?-->", "");
foreach(mailMessage.LinkedResources中的变量linkedResource) { 使用(var memoryStream=new memoryStream()) { linkedResource.ContentStream.CopyTo(memoryStream); string base64String=Convert.ToBase64String(memoryStream.ToArray()); mailMessage.HtmlBody=mailMessage.HtmlBody.Replace($“cid:{linkedResource.ContentId},$”数据:{linkedResource.ContentType.MediaType};base64,“+base64String); } } } mailMessage.HtmlBody=Regex.Replace(mailMessage.HtmlBody,@“\”,“”);

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

我敢打赌npm解析器没有那么糟糕。EML是RFC 822中指定的一种非常成熟的格式,因此只要解析器遵循规范,它就可能工作得非常好。至于谷歌文档,有一个可以查看EML文件的扩展名。我向我的谷歌硬盘发送了一个EML,它提示我安装扩展,并且它正确地预览了我的EML文件。我走上了构建自己的EML查看器的道路,结果发现其实并不难。使用Aspose在服务器上解析EML,它实际上做了相当好的解析工作。谢谢你给了我一点动力,让我走上那条路@chilinut。它得到了回报!您的解决方案是否支持附件?文件如何作为html的一部分显示?对于附件,我使用Google文档查看器和Microsoft Office Online文档查看器的组合。我从服务器获取附件元数据(而不是附件本身),单击每个附件,调用Google docs viewer或Microsoft Office Online Doc viewer,并向Google或Office API提供一个端点,该端点将从我们的服务器流式传输附件数据。