从今天起收到电子邮件附件

时间:2016-07-28 18:52:29

标签: shell powershell

我想从我的Outlook电子邮件中获取具有当前日期的.txt文件。 到目前为止它会抓住任何有' .txt'已将附件。 我如何格式化它以便从今天发送电子邮件。

我将在此文件夹中收到 1 每日电子邮件,因此我想获取该每日文件的附件并将其放在我的目录中的文件夹中。 到目前为止,我有这个:

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

1 个答案:

答案 0 :(得分: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:\$_")
        }
    }
}

希望这会有所帮助。你的问题确实教会了我一些新的东西。