これは、メールを解析するために使用しているコードです。それらが特定の日付に一致する場合は、それらを他のメールのリストに追加し、それをフラット ファイルにします。
outfile = "C:\Temp\emails.csv"
$olFolderInbox = 6
$ol = new-object -comobject "Outlook.Application"
$mapi = $ol.getnamespace("mapi")
$inbox = $mapi.GetDefaultFolder($olFolderInbox)
$msgs = $inbox.Folders.Item("root")
$list1 = @()
foreach($message in ($msgs.items))
{
if($message.ReceivedTime -gt $(get-date).adddays(-14))
{
$list1 += "$($message.Subject);$($message.ReceivedTime);$($message.Body.Replace("`n",", "))"
}
}
if(Test-Path $outfile)
{
Remove-Item $outfile
Add-Content $outfile $list1
}
else
{
Add-Content $outfile $list1
}
私が遭遇する問題は、replace ステートメントが$message.Body.Replace("`n",", ")
実際には改行を削除せず、ファイルが適切に作成されないことです。本体部分の中身が全て一行になっていることを確認する方法はありますか?
オブジェクトが文字列であることを確認した$message.body
ので、これが機能しない理由はわかりません。