2016-07-28 5 views
0

Я хотел бы получить .txt-файл из моего Outlook-сообщения, имеющего текущую дату. пока что он захватит все, что имеет «.txt» атаку. Как мне отформатировать его, чтобы он получал электронное письмо с сегодняшней даты ТОЛЬКО.Получайте последние сообщения только от пользователя

Я буду получать ежедневную электронную почту в этой папке , поэтому я хочу захватить это ежедневное вложение файла и поместить его в папку в моем каталоге. До сих пор у меня есть это:

$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

Смежные вопросы