2012-05-29 35 views
1

我有以下PowerShelll脚本一个问题:PowerShell和展望 - 不一致

$mail = $outlook.CreateItem(0) 
$mail.To = "[email protected]" 
$mail.Subject = "PowerShell Test 1" 
$mail.Body = "Body..." 
$mail.HTMLBody = "This is test!" 
$mail.Attachments.Add("C:\Test.txt")  
$mail.save() 

$mail = $outlook.CreateItem(0) 
$mail.To = "[email protected]" 
$mail.Subject = "PowerShell Test 2" 
$mail.Body = "Body..." 
$mail.HTMLBody = "This is test!" 
$mail.Attachments.Add("C:\Test.txt")  
$mail.save() 

当Outlook已经启动,脚本工作正常 - 如预期,我得到了草稿文件夹两封电子邮件。

当Outlook未启动时,Outlook首先向用户请求权限,但最终我在草稿中收到第二封电子邮件,第一封电子邮件丢失。

有没有人遇到过这个问题,有什么解决办法?

+1

到底是什么'$ outlook'? –

+0

你试过在try/catch块中包装这个吗? @Ocaso它可能是$ outlook = new-object -com outlook.application;但如果OP将证实,那将是很好的。 – nimizen

+0

我没有问题。即使Outlook关闭,我也会看到这两个草稿。 – ravikanth

回答

1

我有和Ocaso一样的问题,第一封电子邮件正在发送到收件箱,第二封邮件已发送到草稿。我固定这个问题通过用于前景建立会话:

$outlook = new-object -com outlook.application 
$session = $outlook.Session 
$session.Logon() 

会话基本上设置时的应用程序,前景在这种情况下,可以在或设置数据的一个时间段。通过调用session.Logon(),我们正在实例化Outlook何时可以保存数据/电子邮件的会话或时间段。下面的文章做了解释会议的一个更好的工作:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms714451%28v=vs.85%29.aspx

感谢