Powershell在过去几天内保存电子邮件附件

时间:2016-10-24 15:42:58

标签: email powershell outlook attachment

我有以下代码在outlook中使用powershell保存电子邮件附件。

$o = New-Object -comobject outlook.application
 $n = $o.GetNamespace("MAPI")

 $Account = $n.Folders | ? { $_.Name -eq ''Mailbox};
 $f = $Account.Folders | ? { $_.Name -match 'Inbox' };

$filepath = "c:\temp\"
 $f.Items| Where-Object {$_.SenderName -eq "Sender"} | foreach {
  $Subject = $_.Subject
    $_.attachments|foreach {
     Write-Host $_.filename
     $a = $_.filename
     If ($a.Contains("xls")) {
     $_.saveasfile((Join-Path $filepath "$Subject.xls"))
    }
   }
 }

这个问题是我的整个收件箱都需要一段时间。 有没有办法让它只查看过去一周左右的数据? 或者也许昨天只收到电子邮件? 我想首先查看最新的电子邮件,当它找到第一个停止查看的匹配时...... 它试图保存的电子邮件每天发送给我,并在找到第一个实例后停止。

谢谢!

2 个答案:

答案 0 :(得分:1)

我做了类似的事情,清理服务器上早于特定日期的文件。也许这有助于在这里找到解决方案?

我为日期范围

创建了一个变量
#creates a date that is 14 days before today. 
$limit = (Get-Date).AddDays(-15)

在我的代码中,我然后添加以下条件

Where-Object( $_.PSIsContainer -and ($_.CreationTime -lt $limit))

在此子句中管道您过滤电子邮件,我怀疑这会增加您想要的限制。希望这会有所帮助。

答案 1 :(得分:0)

使用$( init ); function init() { $('.drag').draggable({ snap: ".cell", revert: "invalid" }); $('.cell').droppable({ drop: handleElementDrop }); } function handleElementDrop( event, ui ) { dragger = ui.draggable; dragger.draggable( 'disable' ); $(this).droppable( 'disable' ); dragger.position( { of: $(this), my: 'left top', at: 'left top' } ); dragger.draggable( 'option', 'revert', false ); } Items.Find/FindNextItems.Restrict媒体资源创建限制:ReceivedTime