使用vbscript将msg转换为后台的html

时间:2016-04-29 18:15:25

标签: vbscript outlook

我将Outlook msg文件转换为html文件。到目前为止,我有:

Dim objshell,BaseName,outlookapp,emailPath
Set objshell= CreateObject("scripting.filesystemobject") 
Set outlookapp = CreateObject("Outlook.Application")
Set email = outlookapp.CreateItemFromTemplate(emailPath)
emailPath = "C:\Users\makkerman\Desktop\email folder\test.msg"

BaseName = objshell.GetBaseName(emailPath)
email.saveas objshell.GetParentFolderName(emailPath) & "\" & BaseName & ".html", 5

outlookapp.Quit

我希望在后台运行(不会打扰运行它的用户)。我是否必须启动Outlook流程?目前看来,如果用户打开了Outlook,那么上面的脚本会关闭Outlook,我可以理解为什么(outlookapp.Quit)。如果在运行脚本时Outlook未打开,Outlook将打开脚本的持续时间。

有人可以向我推正正确的方向吗?谢谢!

2 个答案:

答案 0 :(得分:1)

为什么需要调用Application.Quit?如果Outlook正在运行,它将继续运行。如果它没有运行,Outlook将在您取消引用所有Outlook对象时自行关闭 - 请记住,Outlook是单例,CreateObject将连接到已经运行的实例;你没有得到一个全新的过程。

如果您不想使用Outlook,可以使用Redemption(它无法启动Outlook):

  set Session = CreateObject("Redemption.RDOSession")
  set Msg = Session.GetMessageFromMsgFile("c:\temp\test.msg")
  Msg.SaveAs "c:\temp\test.html", 5

答案 1 :(得分:0)

我会创建一个Outlook实例,无论它是否打开。这应该有所帮助:Run program minimized。请务必查看答案中的文档链接以获取所有参数选项。