Я пытаюсь сравнить текст сообщения электронной почты, полученного в учетной записи Outlook, с определенным текстом.
Я выполнил следующие действия:
- Чтение Outlook
- Извлечение требуемой электронной почты из папки входящих сообщений
- Экспорт сообщений электронной почты в файл CSV для сравнения
- Сравните, если CSV-файл содержит определенный текст, который нужно сравнить / проверить.
Однако в моем случае powershell способен сравнивать только первую строку основного текста изCSV-файл, остальные строки не сравниваются, и сравнение не выполняется, если я включаю весь текст для сравнения в строку.
Я пробовал следовать логике с изменением -contains
, -like
, -eq
, -match
и т. Д.
При сравнении можно сравнить фактическое тело письма с предопределенным текстом.
If (Select-String -SimpleMatch -List -Pattern $body2 -Path $filelocation1)
{
Write-Output "Match"
}
Доступ к почтовому ящику Outlook
$outlook = new-object -com outlook.application
$ns = $outlook.GetNameSpace("MAPI")
$inbox = $ns.GetDefaultFolder($olFolderInbox)
$targetfolder = $inbox.Folders | where-object { $_.name -eq "Inbox_Subfolder"}
$email = $targetfolder.items | Where {($_.SenderName -eq "sendername")} |
Экспорт результатов поиска в файл csv
Where {$_.Subject -match "subject"} | Out-File -FilePath $filelocation1
$body2="Body Text to be compared, it is around 320 chars"
Я хочу сравнить все 320 символов текста за один рази посмотрите, совпадает ли тело письма в файле csv с ожидаемым текстом письма.