使用Powershell,任务计划程序发送Outlook 2013电子邮件(电子邮件显示在草稿中;不发送)

时间:2017-11-17 14:00:17

标签: powershell email scripting outlook scheduled-tasks

我正在尝试通过Powershell从Outlook帐户向Outlook帐户发送电子邮件,并使用任务计划程序运行该脚本。

My Tash Scheduler配置如下:

PowerShell -NoProfile -ExecutionPolicy Bypass -File "<script location\script name.ps1>" -Parameter 'Value'

我的PowerShell脚本如下:

$Outlook = New-Object -ComObject Outlook.Application
$Mail = $Outlook.CreateItem("olMailItem")
$Mail.To = "<My Email>"
$Mail.Subject = "Subject"
$Mail.Body = "Body"
$Mail.Send() 

如果我通过双击它自己运行PS1脚本,电子邮件会成功发送。

如果我有调度程序,使用我的帐户,我可以看到电子邮件弹出到我的Outlook的草稿文件夹,草稿文件夹闪烁一些,电子邮件消失。

在搜索可能与之相关的唯一内容是Object Model Guard。但我不知道如何解决这个问题。

关于如何解决我的情况的任何想法?

编辑:

我认为这与设置“仅在用户登录时运行”与“运行用户是否已登录”设置有关。

如果我选择“仅在用户登录时运行”,但是当我选择“运行用户是否登录时”时,它会起作用,即使我提前给出了密码,也会出现我上面提到的情况。

1 个答案:

答案 0 :(得分:0)

固定!

在完成所有搜索和尝试之后无法相信,我让它发挥作用。

让Task Scheduler调用包含PowerShell命令的.BAT文件解决了这个问题,在我的情况下:

PowerShell -NoProfile -ExecutionPolicy Bypass -File "<script location\script name.ps1>" -Parameter 'Value'

不知道为什么会这样。