1 Pluspunkt 0 Minuspunkte

Ich habe dieses Script gefunden um Outlook Emails in Powershell anzuzeigen.

# 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) {
    Write-Host "Betreff: $($Email.Subject)"
    Write-Host "Absender: $($Email.SenderName)"
    Write-Host "Empfangsdatum: $($Email.ReceivedTime)"
    Write-Host "-----------------------------------"
}

# Beende Outlook
# $Outlook.Quit()

Wie kann ich aber nur ungelesene Mails anzeigen lassen?

bezieht sich auf eine Antwort auf: Outlook Emails mit Powershell anzeigen
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

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()
von (532 Punkte)