2016-06-20 15 views
2

Ich muss den Körper von E-Mails analysieren, um den Inhalt einer Tabelle aus jeder E-Mail zu erhalten. Ich würde gerne PowerShell dazu verwenden. Ich habe diesen Code versucht:Parse Körper der Nachricht (E-Mail) Datei

Get-ChildItem "C:\Users\mmartindale.NTSERVER\Desktop\delreg temp\msg" -Filter *.msg | 
    ForEach-Object { 
     $outlook = New-Object -comobject outlook.application 
     $msg = $outlook.Session.OpenSharedItem($_.FullName) 
     $msg | Select body | ft -AutoSize 
    } 

Aber alles, was ich bekommen ist eine gekürzte Ausgabe wie folgt:

Body 
---- 
This is approved for Deal Reg...

Wie kann ich Ausgang dieses als ein Objekt, das kann ich Schleife durch?

+3

Hallo, versuchen '$ msg zu ersetzen | Wählen Sie Körper | ft -AutoSize' mit '$ msg | Wählen Sie -expand Körper'? – sodawillow

Antwort

1

Sie können den Parameter Select-Object-ExpandProperty verwenden, um die gewünschte Eigenschaft zu erweitern.

Wie in:

$msg | Select-Object -ExpandProperty Body 
+0

Ich bin wirklich interessiert zu sehen, wenn Sie eine Möglichkeit kennen, die $ msg nach dem Öffnen zu schließen. Das Skript analysiert den E-Mail-Text einmal, klagt dann aber darüber, dass die Nachricht bereits geöffnet wurde. – Brandon

+0

@Brandon Ich werde ein paar Tests machen. Warum musst du es mehrmals analysieren? Ich hatte diese Art von Problem mit dem Client, und ich denke, es hängt mit einigen Sicherheitseinstellungen in Outlook (Trust Center) zusammen. – sodawillow

+0

@Brandon Bitte öffnen Sie eine neue Frage mit dem Code, den Sie verwenden, ich weiß nicht, was Sie meinen "parse es zweimal", und es sollte nicht in Kommentaren behandelt werden:). – sodawillow