我需要使用Outlook Web加载项中的Exchange Web服务(EWS)将EML转换为MSG的帮助。当我从MimeContent(EmailMessage.MimeContent.Content)创建EML文件时,文件输出看起来很糟糕,某些标记当前未转换。 这些文件仅从Windows邮件应用程序打开就很好,但是从Ooutlook(2016)来看却很糟糕。
我试图从Microsoft找到一些解决方案,并找到了第三方解决方案Independent Independent,它的确很棒。格式为MSG时文件看起来不错。但这是针对客户的扩展许可解决方案(使用了30天的演示版)。 这是我使用并运行良好的方式,并尝试找到类似以下内容的:
[Authorize]
public class RoleController : Controller
{
private ApplicationRoleManager _roleManager;
public RoleController() { }
public RoleController(ApplicationRoleManager roleManager)
{
RoleManager = roleManager;
}
public ApplicationRoleManager RoleManager
{
get
{
return _roleManager ??
HttpContext.GetOwinContext().Get<ApplicationRoleManager>();
}
private set { _roleManager = value; }
}
public ActionResult Index()
{
var model = RoleManager.Roles.ToList();
return View(model);
}
public ActionResult Create()
{
return View();
}
[HttpPost]
public async Task<ActionResult> Create(ApplicationRoleCreateModel model)
{
if (ModelState.IsValid)
{
var result = await RoleManager.CreateAsync(new ApplicationRole()
{
Name = model.Name,
ApplicationId = model.ApplicationId
});
if (result.Succeeded)
return RedirectToAction("Index");
else
foreach (var error in result.Errors)
ModelState.AddModelError("", error);
}
return View();
}
}
答案 0 :(得分:0)
我不知道显示EML文件时有任何Outlook问题。它使用与解析传入的POP3 / IMAP4消息相同的EML解析器。请发布Outlook无法正确显示的特定EML文件。
对于将EML文件转换为MSG,您还可以使用Redemption及其RDOSession。CreateMessageFromMsgFIle
和RDOMail。Import
方法。请记住,这要求MAPI系统必须存在才能正常运行,这意味着必须在本地安装Outlook。
我的头顶上
RDOSession session = new RDOSession();
RDOMail msg = session.CreateMessageFromMsgFile(TempMsgDirectory + "mail.msg");
msg.Import(TempMsgDirectory + "YouEmlFile.eml", rdoSaveAsType.olRFC822);
msg.Save();