如何在 Web 应用程序中预览 EML 文件?
How do I preview EML file in a web application?
我需要能够在基于 Angular/.Net core api 构建的 Web 应用程序中预览 EML 文件。我能够找到 Microsoft 的一项服务 here,它仅预览 Word、Excel 或 PowerPoint 文档。我可以将此页面嵌入网络应用程序并预览这些文件类型。但是此服务不支持 EML 文件。
encryptomatic 提供了另一项在线预览 EML 文件的服务。但是他们没有可以嵌入到应用程序中的东西。
Google 文档查看器可以预览图片、文本和 pdf,但也不支持预览 EML 文件。
我需要一个类似于 outlook web 应用程序预览 EML 文件的功能。
我发现了一些像 eml-format 这样可以解析 EML 文件的 npm 包。我也知道 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/.Net core api 构建的 Web 应用程序中预览 EML 文件。我能够找到 Microsoft 的一项服务 here,它仅预览 Word、Excel 或 PowerPoint 文档。我可以将此页面嵌入网络应用程序并预览这些文件类型。但是此服务不支持 EML 文件。
encryptomatic 提供了另一项在线预览 EML 文件的服务。但是他们没有可以嵌入到应用程序中的东西。
Google 文档查看器可以预览图片、文本和 pdf,但也不支持预览 EML 文件。
我需要一个类似于 outlook web 应用程序预览 EML 文件的功能。
我发现了一些像 eml-format 这样可以解析 EML 文件的 npm 包。我也知道 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 删除注释掉的代码。