2016-07-28 60 views
0

我想從我的Outlook電子郵件中獲得一個.txt文件,該文件包含當前日期。 到目前爲止,它會抓住任何有'.txt'atachment的東西。 我將如何格式化它,以便從今天的日期發送郵件只有獲取電子郵件從今天起只有附件

我將在此文件夾中接收每日電子郵件,所以我想抓住每日文件的附件並將其放置在我的目錄中的文件夾中。 到目前爲止,我有這樣的:

$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」)) 
     } 
    } 
} 

回答

2

下面將通過收件箱,並得到所有的文本文件,從今天收到的電子郵件。

$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:\$_") 
     } 
    } 
} 

希望這會有所幫助。你的問題肯定會教我​​新的東西。

+0

偉大的工作,.getDefaultFolder(6)是什麼意思?如果你不介意我問。 – Cesar

+0

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