使用VBScript和Redemption将MSG转换为EML

使用VBScript和Redemption将MSG转换为EML,vbscript,file-conversion,outlook-redemption,msg,eml,Vbscript,File Conversion,Outlook Redemption,Msg,Eml,我想将MSG文件(Outlook邮件另存为文件)转换为EML(RFC822)文件。我还想反转这个过程,将生成的EML文件转换回MSG。从我读到的内容来看,我可以通过VBScript实现这一点 我没有或不希望安装Outlook,因此我在Windows 64位计算机上安装了Microsoft Exchange Server MAPI Client和Collaboration Data Objects 1.2.1,这是“赎回”页面上的建议。我正在尝试运行以下代码: Set session = Crea

我想将MSG文件(Outlook邮件另存为文件)转换为EML(RFC822)文件。我还想反转这个过程,将生成的EML文件转换回MSG。从我读到的内容来看,我可以通过VBScript实现这一点

我没有或不希望安装Outlook,因此我在Windows 64位计算机上安装了Microsoft Exchange Server MAPI Client和Collaboration Data Objects 1.2.1,这是“赎回”页面上的建议。我正在尝试运行以下代码:

Set session = CreateObject("Redemption.RDOSession")
Set msg = session.GetMessageFromMsgFile("c:\temp\mail.msg", false)
msg.SaveAs "c:\temp\mail.eml", 1024
我得到一个错误,它表明“
错误的操作系统或操作系统版本”
”。操作系统是64位的,Redemption安装为64位,所以我猜独立MAPI库安装为32位


有人知道我能不能把它和救赎一起使用吗?如果没有,是否有人对在未安装Outlook的情况下转换这些文件类型有其他建议?

您的应用程序比特度必须与MAPI系统的比特度匹配,这是无法避免的。有关详细信息,请参阅。
您可以安装64位版本的Outlook(任何版本),也可以用32位(x86)编译应用程序。

请记住,MAPI的独立版本不处理Unicode MSG文件。

您好,谢谢您的回复。我使用的是VBScript,所以它不是编译。。。它以解释方式运行。您可以使用32位解释器运行脚本-运行c:\Windows\SysWow64\cscript.exe Hi Dmitry,这很有效,谢谢!我现在被EML卡在味精上了。从Microsoft Exchange Server MAPI客户端和协作数据对象1.2.1创建MAPI对象需要什么?也许我应该提出一个新问题?MAPIOBJECT属性指向IMAPISession对象之外的实例。该对象只能来自实际记录到某个配置文件的对象。Outlook可以做到这一点。或通过调用Logon进行远程登录。MAPI的独立版本只是一个库,而不是一个独立的应用程序。它不需要自己创建MAPI会话。如果从MSG转换为EML,则不需要MAPI会话,除非您尝试将MSG文件中的EX-type地址转换为SMTP。