gpt4 book ai didi

angular - 如何在 Web 应用程序中预览 EML 文件?

转载 作者:行者123 更新时间:2023-12-04 17:44:20 46 4
gpt4 key购买 nike

我需要能够在基于 Angular/.Net 核心 api 构建的 Web 应用程序中预览 EML 文件。我找到了一项服务 here由仅预览 Word、Excel 或 PowerPoint 文档的 Microsoft 提供。我可以将此页面嵌入网络应用程序并预​​览这些文件类型。但是,此服务不支持 EML 文件。

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

Google 文档查看器可以预览图片、文本和 pdf,但也不支持预览 EML 文件。

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

我找到了一些 npm 包,比如 eml-format可以解析 EML 文件。我也知道 Aspose 提供 EML 解析器。但是,我有点犹豫是否要继续构建自己的 EML 查看器,因为我需要处理嵌入的图像、多部分消息、附件,天知道是什么!

欢迎提出任何建议。

最佳答案

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 删除注释掉的代码。

关于angular - 如何在 Web 应用程序中预览 EML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52826634/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com