2012-05-29 3 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 сначала запрашивает у пользователя разрешения, но в конце я получаю ТОЛЬКО ВТОРОЕ электронное письмо в черновиках, FIRST EMAIL отсутствует.

Неужели кто-нибудь столкнулся с этой проблемой, какие-либо решения?

+1

Что такое '$ outlook'? –

+0

Вы пробовали обернуть это в блок try/catch? @Ocaso Вероятно, это $ outlook = new-object -com outlook.application; но было бы хорошо, если бы ОП подтвердил. – nimizen

+0

У меня нет проблем. Я вижу оба черновика, даже когда Outlook закрыт. – ravikanth

ответ

1

У меня была такая же проблема, как у Ocaso, где первое письмо отправлялось во входящие, а второе отправлено в черновики. Я исправил эту проблему путем установления сеанса для Outlook:

$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

Спасибо