2

次の PowerShell スクリプトに問題があります。

$mail = $outlook.CreateItem(0) 
$mail.To = "aaa@gmail.com"
$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 = "aaa@gmail.com"
$mail.Subject = "PowerShell Test 2"
$mail.Body = "Body..."
$mail.HTMLBody = "This is test!"   
$mail.Attachments.Add("C:\Test.txt")    
$mail.save()

Outlook が既に開始されている場合、スクリプトは正常に動作します。予想どおり、下書きフォルダーに 2 つのメールが届きます。

Outlook が開始されていない場合、Outlook は最初にユーザーにアクセス許可を求めますが、最後に下書きで 2 番目の電子メールのみを取得し、最初の電子メールがありません。

誰かがこの問題に遭遇しましたか、解決策はありますか?

4

1 に答える 1

1

最初のメールが受信トレイに送信され、2 番目のメールが下書きに送信される Ocaso と同じ問題がありました。Outlook のセッションを設定して、この問題を修正しました。

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

セッションは基本的に、アプリケーション (この場合は Outlook) がデータを取り込んだり設定したりできる期間を設定します。session.Logon() を呼び出すことで、outlook がデータ/メールを保存できるセッションまたは期間をインスタンス化しています。以下の記事は、セッションをよりよく説明しています。

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

ありがとう

于 2012-06-06T18:57:49.850 に答える