C# Outlook插件:将MSG文件转换为EML格式

5

有没有一种方法可以在Outlook中(使用插件)读取邮件并将其保存为EML文件?

2个回答

3
您可以有两种方式实现您的目标:
1、您可以通过编程的方式实现。尝试使用第三方库Aspose.Email for .Net。这是一个非常好的库,可用于基本的电子邮件管理功能。在这种情况下,我们将使用转换功能。此外,该库能够操作和编辑消息,通过多个协议发送和接收电子邮件,并与消息存储文件一起工作。
2、使用以下代码,您可以轻松地将MSG转换为EML。看看使用Aspose.Email for .NET是多么简单。
using (var message = Aspose.Email.MailMessage.Load("template.msg»))
{  
    message.Save("output.eml", Aspose.Email.SaveOptions.DefaultEml); 
}

使用在线转换器。 如果您不想通过编程实现,可以使用在线转换器。您可以使用Aspose.Email Conversion。这是一个免费的在线转换器,它提供了从MSG到多种不同文件格式的转换。它有友好的用户界面。请注意保留HTML标记。

0

你可以选择:

1 - 在代码中逐个属性地显式创建MIME文件。你也可以使用现有的MIME转换器(我过去使用过Lumisoft)- 但它们不会在单个调用中转换Outlook消息;你需要显式构建所有标头和MIME部分。

2 - 使用IConverterSession对象(仅限C++或Delphi)- 这是Outlook通过SMTP发送消息时使用的MIME转换器。你可以在OutlookSpy(我是它的作者)中尝试它 - 点击IConverterSession按钮。

3 - 使用Redemption(我是它的作者)和它的RDOMailSaveAsSafeMailItemSaveAs方法- 它可以保存为MIME格式(olRfc822),以及其他十几种格式。当可用时,它使用IConverterSession对象(Outlook 2003及更高版本),否则使用自己的转换器(针对较旧版本的Outlook或针对Exchange版本的MAPI)。 以下脚本(VBS)将当前选定的Outlook邮件保存为EML文件

  set Session = CreateObject("Redemption.RDOSession")
  Session.MAPIOBJECT = Application.Session.MAPIOBJECT
  set rItem = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID)
  rItem.SaveAs "c:\temp\test.eml", 1024`

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接