首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在web应用程序中预览EML文件?

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

Stack Overflow用户
提问于 2018-10-16 01:12:38
回答 1查看 4.2K关注 0票数 3

我需要能够预览建立在角/.NET核心api上的web应用程序中的EML文件。我找到了微软的服务这里,它只预览Word、Excel或PowerPoint文档。我可以嵌入这个网页中的应用程序和预览这些文件类型。但是,此服务不支持EML文件。

加密的另一个服务是在线预览EML文件。但是他们没有可以嵌入应用程序的东西。

Google查看器能够预览图像、文本和pdf,但它也不支持预览EML文件。

我需要一个类似于outlook web应用程序预览EML文件的特性。

我发现了一些npm包,比如eml格式,它们可以解析EML文件。我还知道Aspose提供了EML解析器。然而,我有点犹豫不决地沿着构建自己的EML查看器的路线前进,因为我需要处理嵌入式图像、多部分消息、附件和天知道什么!

欢迎任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-21 23:56:42

代码语言:javascript
运行
复制
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删除注释掉的代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52826634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档