繁体   English   中英

c#outlook加载项将msg转换为eml

[英]c# outlook add-in convert msg to eml

有没有办法在 Outlook 中读取邮件(使用加载项)并将其保存为 EML 文件?

您可以通过两种方式实现目标:

  1. 您可以以编程方式进行 尝试使用第三方库Aspose.Email for .Net 这是一个很棒的库,可用于基本的电子邮件管理功能。 在这种情况下,我们将使用转换。 此外,该库能够操作和编辑消息、通过多种协议发送和接收电子邮件以及处理消息存储文件。

使用以下代码,您可以轻松地将 MSG 转换为 EML。 看看Aspose.Email for .NET是多么简单。

using (var message = Aspose.Email.MailMessage.Load("template.msg»))
{  
    message.Save("output.eml", Aspose.Email.SaveOptions.DefaultEml); 
}
  1. 使用在线转换器 如果您不想以编程方式进行,则可以使用在线转换器进行。 您可以使用Aspose.Email 转换 这是一个免费的在线转换器,可让您将 MSG 转换为多种不同的文件格式。 它有一个友好的用户界面。

你可以

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

2) 使用IConverterSession对象(仅限 C++ 或 Delphi) - 这与 Outlook 使用的 MIME 转换器相同。 您可以在OutlookSpy 中使用它(单击 IConverterSession 按钮)。

3) 使用Redemption及其RDOMail .SaveAs 或SafeMailItem .SaveAs 方法 - 它可以保存为 MIME 格式 (olRfc822) 以及十几种其他格式。 它使用IConverterSession对象(Outlook 2003 及更高版本)或它自己的转换器用于旧版本的 Outlook 或用于 MAPI 的 Exchange 版本时。
以下脚本 (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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM