Email msg到eml格式转换

Email msg到eml格式转换,email,outlook,Email,Outlook,我正在寻找一种方法将msg文件转换为eml格式。我有Outlook 2010,但似乎只能另存为msg。我确实找到了一些可以使用的第三方工具,但我更喜欢不使用第三方工具——如果可能的话。如果您正在寻找一个快速而肮脏的VB脚本,这可能是您唯一的选择。其他选项包括(仅限C++或Delphi)或从各种消息属性一次显式构建一行MIME文件(MailItem可以通过调用Outlook对象模型返回) MSG文件和EML文件这两种格式都用于包含带有附件的电子邮件,但彼此不同。EML扩展名由多个电子邮件客户端使用

我正在寻找一种方法将msg文件转换为eml格式。我有Outlook 2010,但似乎只能另存为msg。我确实找到了一些可以使用的第三方工具,但我更喜欢不使用第三方工具——如果可能的话。

如果您正在寻找一个快速而肮脏的VB脚本,这可能是您唯一的选择。其他选项包括(仅限C++或Delphi)或从各种消息属性一次显式构建一行MIME文件(
MailItem
可以通过调用Outlook对象模型返回)


MSG文件和EML文件这两种格式都用于包含带有附件的电子邮件,但彼此不同。EML扩展名由多个电子邮件客户端使用,另一方面MSG文件仅由Outlook电子邮件客户端使用。在您的场景中,您需要一种有效的方法将多个MSG文件转换为EML格式。通过使用Outlook电子邮件客户端,您可以使用Outlook电子邮件客户端的“另存为”选项轻松地将MSG文件转换为EML格式,但这种方法无法转换其附件

这是一个编程问题吗?我知道你的意思,但“msg”和“eml”并不是严格定义的术语。我猜你想把微软专有的内部格式转换成诚实的Jon Postel RFC5322格式。据我所知,从Outlook中获取这些信息的唯一方法是发送您希望导出为附件(而不是转发)的邮件,然后在真正的电子邮件客户端中打开它们(即使这样,如果您的服务器是Exchange,您也不知道会得到什么)。无论如何,这不是一个编程问题。是的-谢谢。。。不完全是编程,但如果可以通过powershell或vba进行编程-这是值得探索的。。。
  set Session = CreateObject("Redemption.RDOSession")
  Session.Logon 'not needed if you don't need to convert EX addresses to SMTP
  set Msg = Session.GetMessageFromMsgFile("c:\temp.test.msg")
  Msg.SaveAs "c:\temp.test.eml", 1031