2014-12-09 52 views
0

我正在运行一个正在扫描连续循环中的日志文件的C程序。一旦满足某些条件,程序就会生成一个Powershell脚本来执行。该脚本是将电子邮件发送给多个收件人的基本脚本。这里是脚本:由Outlook阻止的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 = "[email protected]; " 
Sleep 1 
$mail.Send() 

该脚本已经过测试,并证明可以工作几个月。但是,Outlook有时会强制用户单击“允许”发送电子邮件。

我不能张贴图片,只是还没有,但这里是症状我描述的链接: link

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

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

我希望有人能给出任何见解,为什么会发生这种情况,什么可以让Outlook发送消息。

谢谢你的时间。

+1

我会重新编码使用EWS托管API,并摆脱Outlook。 – mjolinor 2014-12-09 13:47:15

+0

要完全禁用该消息,您需要在受影响的计算机上以管理员身份运行outlook并进入信任中心>程序设置并设置为“从不警告”。显然有这种方法的警告,但选择在那里。随着代码你有这将是唯一的方法。我不知道该怎么做,但thors锤子有一个很好的建议 – Matt 2014-12-09 14:10:34

+0

检查Glen Scales博客。那里有很多很好的例子。 – mjolinor 2014-12-09 14:25:15

回答

0

请参阅http://www.outlookcode.com/article.aspx?id=52。从本质上讲,你的选择是

  1. 确保您使用的是最新版本的Outlook与上最新的防病毒应用程序一起 - Outlook将不会显示再安全提示。

  2. 切换到扩展MAPI(仅限C++或Delphi)。

  3. 使用使用扩展MAPI内部并且不受安全提示影响的MAPI包装(Redemption)。