2016-07-28 4 views
0

Ich möchte eine TXT-Datei von meiner Outlook-E-Mail, die das aktuelle Datum hat. bis jetzt wird es alles greifen, was eine '.txt' Attachment hat. Wie würde ich es formatieren, so erhält es die E-Mail vom heutigen Datum gesendet ONLY.E-Mail-Anhang von heute nur

Ich werde tägliche E-Mail in diesem Ordner erhalten, also möchte ich den Anhang der täglichen Datei greifen und es in einen Ordner in meinem Verzeichnis legen. Bisher habe ich dies:

$i=1 

#set outlook to open 
$o = New-Object -comobject outlook.application 
$n = $o.GetNamespace(“MAPI”) 


$f = $n.pickfolder('EDI') 


$filepath = “C:\users\cesar.sanchez\desktop\EDI Statement Extract” 

$date = get-date (Get-Date).AddDays(-1) -format "MMMM dd" 


$f.Items | foreach { 
$i=$i+1 
    $_.attachments | foreach { 
    Write-Host $_.filename 
    $a = $_.filename 
    If ($a.Contains(“.txt”)) { 
    $_.saveasfile((Join-Path $filepath “Nassau EDI ExtractTest _$date.txt”)) 
     } 
    } 
} 

Antwort

2

unten durch den Posteingang gehen und erhalten Sie alle Textdateien aus E-Mails heute erhalten.

$ol = New-Object -ComObject outlook.application 
$n = $ol.getNameSpace("MAPI") 
$fold = $n.GetDefaultFolder(6).items 
$fold |Where {$_.ReceivedTime.Day -eq (Get-Date -format "dd") -AND $_.ReceivedTime.Month -eq (Get-Date -format "MM") -AND $_.ReceivedTime.Year -eq (Get-Date -format "yyyy") | foreach{ 
    $_.Attachment | foreach{ 
     $att = $_ 
     $_.FileName | Where {$_ -CMatch '\.txt$'} | foreach{ 
      $att.saveasfile("C:\$_") 
     } 
    } 
} 

Hoffe, das hilft. Deine Frage hat mir sicherlich etwas Neues beigebracht.

+0

Großartig funktioniert das, was bedeutet der .getDefaultFolder (6)? Wenn es dir nichts ausmacht, dass ich frage. – Cesar

+0

https://msdn.microsoft.com/en-us/library/bb219900(v=office.12).aspx – Junaid