2017-04-25 3 views
4

Ich verwende PowerShell, um den Inhalt von E-Mail-Nachrichten zu analysieren, die in einem lokalen Ordner gespeichert sind.Inhalt der MSG-Datei in Zeichenfolge abrufen

Der Code ist wie folgt ...

Get-ChildItem "C:\projtest\emails" -Filter *.msg | 
ForEach-Object { 
    $msg = "" 
    $outlook = New-Object -comobject outlook.application 
    $msg = $outlook.Session.OpenSharedItem($_.FullName) 
    $msg | Select -ExpandProperty body 

    Write-Host $msg 
} 

$outlook.Quit() 

Vorerst möchte ich nur die Datei öffnen, um den Inhalt zu bekommen, und es angezeigt werden soll.

Das Problem, das ich renne, ist, dass, sobald das Skript ausgeführt wird, OUTLOOK.EXE nicht geschlossen wird, damit ich das Skript nicht erneut für dieselbe Nachricht ausführen kann.

Gibt es eine bessere Möglichkeit, Outlook-E-Mail-Nachrichten zu öffnen, den Inhalt in einer Zeichenfolge in PowerShell abzurufen und den Outlook-Prozess zu schließen?

Antwort

4

Öffnen und schließen Sie Outlook nicht, öffnen Sie es nicht einmal, erledigen Sie Ihre Arbeit und schließen Sie es am Ende der Sitzung.

$outlook = New-Object -comobject outlook.application 
Get-ChildItem "C:\projtest\emails" -Filter *.msg | 
    ForEach-Object { 
     $msg = $outlook.Session.OpenSharedItem($_.FullName) 
     $msg.body 
    } 
$outlook.Quit() 

Edit: Ok, müssen Sie Ihre MSG-Dateien schließen, nicht Outlook. Fügen Sie das nur zur ForEach Schleife hinzu:

$outlook = New-Object -comobject outlook.application 
Get-ChildItem "C:\projtest\emails" -Filter *.msg | 
    ForEach-Object { 
     $msg = $outlook.Session.OpenSharedItem($_.FullName) 
     $msg.body 
     $msg.Close() 
    } 
$outlook.Quit() 
+0

Leider macht es keinen Unterschied. Diese Meldung wird angezeigt, wenn Sie versuchen, das Skript erneut auszuführen. OUTLOOK.EXE wird noch in Prozessen ausgeführt. 'Wir können 'C: \ projest \ emails \ Project Creations 42517.msg' nicht öffnen. Es ist möglich, dass die Datei bereits geöffnet ist oder Sie keine Berechtigung zum Öffnen haben. – Brandon

+0

Ich habe meine Antwort aktualisiert, um Ihr Problem zu beheben. – TheMadTechnician

+0

Sehr geschätzt! Die Idee ist, die Nachricht öffnen/analysieren zu können, Outlook muss dabei jedoch nicht geschlossen werden. Ich hatte gehofft, es gäbe eine Möglichkeit, die .msg-Datei einfach zu schließen, ohne den Outlook-Prozess zu beenden. – Brandon

Verwandte Themen