任务计划程序 - MS Access 无法通过 MS Outlook 发送电子邮件

问题描述 投票:0回答:2

最近我们将系统更新到 Office 2016。我有一个计划任务,读取 MS Access DB 中的信息,然后通过 Outlook 将此信息发送给邮件收件人。一切都很好,直到升级。

计划任务启动一个 .bat 文件,该文件打开 MS Access、调用函数、执行任务,然后使用 Outlook 通过电子邮件发送信息。

'c: cd\Program Files (x86)\Microsoft Office\Office16 msaccess.exe "C:\autojobs\autojobs2.accdb" /x AUTO_JOB_ACTIVEWITHNOACTIVEPRIME ' 

当我通过双击手动运行批处理文件时,它会按预期工作并发送电子邮件。但是,当我运行任务计划程序时,它不起作用。我确信它可以打开 MS Access 文件并且可以读取,但由于某种原因它无法发送电子邮件。我已经降低了所有安全设置,但没有效果。

计划任务以最高权限运行,升级前一切正常。当我将 Windows 任务计划程序中的属性更改为仅在用户登录时运行时,无论用户是否登录都运行。它工作完美。然而,在办公室升级之前,情况并非如此。

有人有什么建议吗?

email ms-access batch-file outlook windows-task-scheduler
2个回答
0
投票

Outlook 的安全设置将阻止应用程序以编程方式通过它发送电子邮件。它将使用弹出对话框来请求发送电子邮件的许可。虽然我已成功摆脱弹出窗口并让 Access 在 Outlook 打开时通过 Outlook 发送(手动和作为计划任务),但当 Outlook 尚未打开时,它仍然会失败。

如果您有能力,最好的选择是在运行计划任务的计算机上保持 Outlook 打开。否则,您必须尝试找出策略和注册表/Outlook 设置的哪种组合将使 Outlook 按您希望的方式工作。

编辑:我的经验是使用 Windows 域/本地交换服务器环境。


0
投票

我们几周前升级到Office 2016,并遇到了与您相同的问题。我们的批处理文件运行 Access 并触发一个宏,将一些数据导出到文本文件,并且在手动运行时工作正常。然而,当通过任务计划程序运行时,一切“似乎”都运行良好,但文本文件从未更新。经过几周的尝试但没有成功,我终于找到了问题的原因和解决方案。 在我们的例子中,问题是 Access 2016 希望作为前台应用程序运行。但是,当作为任务计划程序应用程序运行时(选中“无论用户是否登录都运行”选项),它将自身视为后台应用程序,因此不会运行。有关更多信息,请参阅 Jim Dettman 的回答:

https://www.experts-exchange.com/questions/28988837/

接下来,我找到了 Microsoft 员工 Blake Morrison 的

这篇文章

,他在其中讨论了最新版本的任务计划程序中的更改。他的故障排除建议之一对我们有用:

尝试创建一个新任务,但选择“配置为:”选项 “Windows Server 2003、Windows XP 或 Windows 2000” – 这将创建 XP/2003 风格的任务

不幸的是,您可能必须将其作为新任务来执行 - 现有任务似乎不允许您选择此选项(它没有显示在我现有任务的下拉菜单中)。所以我对新任务的设置是:

以管理员帐户运行
  1. “无论用户是否登录都运行”-选中
  2. “以最高权限运行”-选中
  3. 配置用于:Windows Server 2003、Windows XP 或 Windows 2000
  4. 如果我手动触发任务,我会看到命令提示符打开,然后 Access 短暂打开并消失(我们的宏末尾有一个退出 Access 命令),然后命令提示符消失。文本文件的输出按预期写入。如果我安排它在我注销计算机时运行,显然我什么也看不到,但文本文件再次按预期写入,所以我知道它有效。

© www.soinside.com 2019 - 2024. All rights reserved.