Email Powershell电子邮件脚本被Outlook阻止

Email Powershell电子邮件脚本被Outlook阻止,email,powershell,outlook,Email,Powershell,Outlook,我正在运行一个C程序,该程序在连续循环中扫描日志文件。一旦满足某些条件,程序将生成要执行的Powershell脚本。此脚本是向多个收件人发送电子邮件的基本脚本。以下是脚本: $o = New-Object -com Outlook.Application $mail = $o.CreateItem(0) Sleep 1 $mail.subject = "Auto Report" $mail.HTMLBody = "This is an automated message." $mail.To =

我正在运行一个C程序,该程序在连续循环中扫描日志文件。一旦满足某些条件,程序将生成要执行的Powershell脚本。此脚本是向多个收件人发送电子邮件的基本脚本。以下是脚本:

$o = New-Object -com Outlook.Application
$mail = $o.CreateItem(0)
Sleep 1
$mail.subject = "Auto Report"
$mail.HTMLBody = "This is an automated message."
$mail.To = "recipient@email.com; "
Sleep 1
$mail.Send()
这个脚本已经测试并证明可以工作几个月了。但是,Outlook有时会强制用户单击“允许”发送电子邮件

我现在还不能发布图片,但这里有一个链接指向我描述的症状:

因为这应该是一个自动程序,这是一个问题。该程序必须能够在后台运行,无论是否有用户在场

此程序在workplace工作站上运行,我没有管理员权限更改outlook上的设置或更新任何防病毒文件。到目前为止,这对我的问题没有帮助

我希望有人能提供一些见解,解释为什么会发生这种情况,以及是什么让Outlook能够发送这些消息

谢谢您抽出时间。

请参阅。本质上,你的选择是

  • 确保您使用的是最新版本的Outlook以及最新的防病毒应用程序-Outlook将不会显示安全提示

  • 切换到扩展MAPI(仅限C++或Delphi)

  • 使用使用扩展MAPI internall且受安全提示影响的MAPI包装器()


  • 我将重新编写该代码以使用EWS管理的API,并删除Outlook。要完全消除该消息,您需要在受影响的计算机上以管理员身份运行Outlook,进入信任中心>编程设置并设置为“从不警告”。显然,这种方法有一些警告,但选择是有的。有了你的代码,这将是唯一的方法。我不知道怎么做,但thors hammer有一个很好的建议查看Glen Scales的博客。这里有很多很好的例子。只需使用
    发送邮件
    并完全绕过outlook即可。