有没有一种方法可以在Outlook中(使用插件)读取邮件并将其保存为EML文件?
using (var message = Aspose.Email.MailMessage.Load("template.msg»))
{
message.Save("output.eml", Aspose.Email.SaveOptions.DefaultEml);
}
你可以选择:
1 - 在代码中逐个属性地显式创建MIME文件。你也可以使用现有的MIME转换器(我过去使用过Lumisoft)- 但它们不会在单个调用中转换Outlook消息;你需要显式构建所有标头和MIME部分。
2 - 使用IConverterSession对象(仅限C++或Delphi)- 这是Outlook通过SMTP发送消息时使用的MIME转换器。你可以在OutlookSpy(我是它的作者)中尝试它 - 点击IConverterSession按钮。
3 - 使用Redemption(我是它的作者)和它的RDOMail。SaveAs
或SafeMailItem。SaveAs
方法- 它可以保存为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`