我需要能够预览建立在角/.NET核心api上的web应用程序中的EML文件。我找到了微软的服务这里,它只预览Word、Excel或PowerPoint文档。我可以嵌入这个网页中的应用程序和预览这些文件类型。但是,此服务不支持EML文件。
加密的另一个服务是在线预览EML文件。但是他们没有可以嵌入应用程序的东西。
Google查看器能够预览图像、文本和pdf,但它也不支持预览EML文件。
我需要一个类似于outlook web应用程序预览EML文件的特性。
我发现了一些npm包,比如eml格式,它们可以解析EML文件。我还知道Aspose提供了EML解析器。然而,我有点犹豫不决地沿着构建自己的EML查看器的路线前进,因为我需要处理嵌入式图像、多部分消息、附件和天知道什么!
欢迎任何建议。
发布于 2018-10-21 23:56:42
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删除注释掉的代码。
https://stackoverflow.com/questions/52826634
复制相似问题