是否有办法在outlook中读取邮件(使用外接程序)并将其保存为EML文件?
你可以通过两种方式实现你的目标:
- 你可以通过编程方式。尝试使用第三方库。. net的电子邮件。这是一个很棒的库,可以用于基本的电子邮件管理功能。在本例中,我们将使用转换。此外,这个库能够操纵和编辑消息,通过几个协议发送和接收电子邮件,并使用消息存储文件。
using (var message = Aspose.Email.MailMessage.Load("template.msg»))
{
message.Save("output.eml", Aspose.Email.SaveOptions.DefaultEml);
}
- 使用在线转换器。如果您不想以编程方式完成,可以使用在线转换器完成。你可以用Aspose。电子邮件转换。这是一个免费的在线转换器,它为您提供从MSG转换到一堆不同的文件格式。它具有友好的用户界面。
我是Aspose的开发者布道者
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或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:temptest.eml", 1024`