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



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

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

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

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

我找到了一些像 eml 格式这样的 npm 包,可以解析 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,并使用正则表达式删除注释掉的代码。

相关内容

  • 没有找到相关文章

最新更新