【问题标题】:Task scheduler. VBS script is not being executed任务调度器。 VBS 脚本没有被执行
【发布时间】:2016-02-12 13:11:11
【问题描述】:

我创建了一个 vbs 来从 Outlook 未读电子邮件中检索附件并将它们存储到一个文件夹中。

GetMail.vbs

Dim SavePath
Dim Subject
Dim FileExtension
Dim k

SavePath = "D:\IN\"
Subject = "'Replication IN'"

Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objFolder = objNamespace.GetDefaultFolder(6) 'Inbox

Set colItems = objFolder.Items
Set colFilteredItems = colItems.Restrict("[Unread]=true")
Set colFilteredItems = colFilteredItems.Restrict("[Subject] = " & Subject)


For k = colFilteredItems.Count to 1 step -1
  set objMessage  = colFilteredItems.Item(k)
  intCount = objMessage.Attachments.Count
    If intCount > 0 Then
        For i = 1 To intCount
                objMessage.Attachments.Item(i).SaveAsFile SavePath &  _
                    objMessage.Attachments.Item(i).FileName
        Next
        objMessage.Unread = False
    End If
Next

现在,我要自动化这个任务,一旦完成,执行另一个程序来处理收到的附件。为此,我创建了一个批处理文件。

MyBatch.bat

cls
@ECHO OFF
ECHO. *  Retrieving emails ... *
"D:\GetMail.vbs"
ECHO. *  Importing data. Please wait ... *
"D:\MyProgram.exe" 
CLS
EXIT

我没有问题,执行 .bat 文件时一切正常。但是,当此文件由计划任务执行时,脚本无法读取电子邮件,也无法收集附件。

我已经检查了以下内容:

  • 任务正在以管理员身份运行
  • 以最高权限运行复选框已勾选。
  • 任务的最后执行状态是正确的。
  • 事件日志查看器中没有相关错误。

可能是什么原因?

【问题讨论】:

  • 当 Outlook 通过规则向导下载电子邮件时,尝试执行脚本作为对电子邮件执行的操作。

标签: batch-file vbscript outlook scheduled-tasks


【解决方案1】:

Outlook 与任何其他 Office 应用程序一样,不能在服务中使用(这就是任务计划程序)。

您可以使用扩展 MAPI(仅限 C++ 或 Delphi)或包装器,例如 Redemption(任何语言,它的 RDO 系列对象都可以在服务中使用)。

您可能还想添加对 Namepace.Logon 的调用:

Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
objNamespace.Logon
Set objFolder = objNamespace.GetDefaultFolder(6) 'Inbox

【讨论】:

  • 感谢您的回复。我来看看扩展 MAPI。
猜你喜欢
  • 1970-01-01
  • 2015-06-10
  • 1970-01-01
  • 1970-01-01
  • 2018-10-24
  • 1970-01-01
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
相关资源
最近更新 更多