Du kannst in der foreach Schleife prüfen, ob die Email bereits gelesen wurde und falls ja, diese Mails überspringen.
# Starte Outlook
$Outlook = New-Object -ComObject Outlook.Application
$Namespace = $Outlook.GetNamespace("MAPI")
$Inbox = $Namespace.GetDefaultFolder(6) # 6 entspricht dem Ordner "Posteingang"
# Durchlaufe die E-Mails im Posteingang
foreach ($Email in $Inbox.Items) {
if (-not $Email.UnRead) {
continue # Überspringe, wenn die E-Mail als gelesen markiert ist
}
Write-Host "Betreff: $($Email.Subject)"
Write-Host "Absender: $($Email.SenderName)"
Write-Host "Empfangsdatum: $($Email.ReceivedTime)"
Write-Host "-----------------------------------"
}
# Beende Outlook
# $Outlook.Quit()