迭代多个电子邮件正文并传递给哈希数组

时间:2015-06-29 04:44:42

标签: arrays email powershell foreach outlook

我正在尝试迭代具有特定主题行的电子邮件,并将匹配的电子邮件正文解析并传递给哈希数组。我如何处理导致问题的多个电子邮件正文存在问题。

$ol=New-Object -ComObject Outlook.Application
$ns=$ol.GetNameSpace('MAPI')
$inbox=$ns.GetDefaultFolder(6)
$Goodsubject='Interesting Email'
$mail = $InBox.items |
    Where-Object{
        $_.Unread -and $_.Subject -match  $Goodsubject
        #$_.Subject -match  $Goodsubject
    } | 
    Sort-Object ReceivedTime -Descending |
    Select-Object Subject,ReceivedTime,Body,SenderName
#    Select-Object Body
$mail | %{
    $_.Body | %{$interestinghash = @{}} {
        if ($_ -match "(.*): (.*)") {
            $interestinghash[$matches[1]]=$matches[2];
        }
    }

假设电子邮件有4行,每行都有一个键:值,我看$interestinghash,我只会有一个电子邮件的键值对。我不会全部4.也就是说,我可以替换以下行:

$mail | %{
    $_.Body | %{$interestinghash = @{}} {
        if ($_ -match "(.*): (.*)") {
            $interestinghash[$matches[1]]=$matches[2];
        }
    }

使用:

$mail | %{$interestinghash = @{}} {
    if ($_ -match "(.*): (.*)") {
        $interestinghash[$matches[1]]=$matches[2];
    }
}

如果我这样做,它会给我所有4个值,但只会查看1封电子邮件。我不确定我在这里做错了什么。

0 个答案:

没有答案