簡體   English   中英

移動Outlook郵件Powershell

[英]Move Outlook Messages Powershell

我正在嘗試編寫一個腳本,該腳本從10天以上的文件夾中的郵件項目中下載附件,將其保存到我的硬盤驅動器中,然后將郵件項目移至已刪除的項目文件夾中。 到目前為止,附件下載工作正常,但是當我添加代碼以移動電子郵件時,附件下載僅適用於文件夾中一半的電子郵件。 代碼如下所示。 任何幫助表示贊賞。

$Folder.Items | foreach{
    $Received = New-Object DateTime
    $Received = $_.ReceivedTime

    $howOld = New-Object int
    $howOld = $Today.subtract($Received)
    $howOld = $howOld | select-object -ExpandProperty Days

    $date = $_.ReceivedTime.ToString("MMddyyyy")

    $howOld

    if ($howOld -gt 10){
           #Save Attachment To Folder
           $_.attachments | foreach{
           $fileName = $_.filename
           $split = $fileName.Split('.')
           $fileName = $split[0]
           $fileExtension = $split[1]
           $fileName = $fileName + '_' + $date + '.' + $fileExtension

           $_.saveasfile((Join-Path $filepath $fileName))
           }
        #Move to Deleted Folder
        $result = $_.Move($deletedFolder)
    }
}

能夠通過更改循環結構來解決此問題。 我沒有使用foreach,而是改為使用迭代計數器。

$emails = $Folder.Items 
For ($i=($emails.count-1);$i -ge 0;$i--)

這解決了問題。

您也可以蠻力地做

while ($mails.count -gt 0)
{
    foreach ($mail in $mails) 
    {
        $mail.move($archive)
    }
    $mails = ($inbox.folders.Item("test")).items
}   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM