How to control (the many ways) of Email forwarding in Exchange Online

Hallo zusammen,

Wenn es um das Thema E-Mail Weiterleitungen geht, dann sollte man sich folgenden Artikel durchlesen.

The many ways to block automatic email forwarding in Exchange Online

https://techcommunity.microsoft.com/t5/exchange-team-blog/the-many-ways-to-block-automatic-email-forwarding-in-exchange/ba-p/607579

Im Prinzip gib es folgende Möglichkeiten zum Weiterleiten von EMails.

  • Forwarding über ein Mail Enabled AD Objekt (ForwardingAddress)
  • Forwarding mittels Emailadresse (ForwardingSMTPAddress)
  • Outlook Regel

Anfangs September wurde ein neues Setting zum Kontrolieren der E-Mail  Weiterleitungen vorgestellt.

Konfigurieren der externen e-Mail-Weiterleitung in Office 365

https://docs.microsoft.com/de-de/microsoft-365/security/office-365-security/external-email-forwarding?view=o365-worldwide

Set-HostedOutboundSpamFilterPolicy

https://docs.microsoft.com/en-us/powershell/module/exchange/set-hostedoutboundspamfilterpolicy?view=exchange-ps

Auch wenn es im Message Center "ATP" heiss, auch mit E3 Lizenzen habe ich Zugriff auf dieses Setting https://protection.office.com/antispam

Antispameinstellungen --> Filterrichtlinie für ausgehendes Spam --> Automatische Weiterleitung

Oder man macht das einfach per Security & Compliance PowerShell

Connect to Security & Compliance Center PowerShell

https://docs.microsoft.com/en-us/powershell/exchange/connect-to-scc-powershell?view=exchange-p

Get-HostedOutboundSpamFilterPolicy | fl

Set-HostedOutboundSpamFilterPolicy -AutoForwardingMode On/Off/Automatic

Weiterleitungen prüfen

Ob und wie E-Mails Weitergeleitet werden, findet man über den "Weiterleitungsbericht" heraus. https://protection.office.com/reportv2?id=MailFlowForwarding&pivot=Name

Man sieht, wieviel per Outlook Regel und wie viel per SMTP Weiterleitung weitergeleitet werden.

Die Details dazu kann man ebenfalls anschauen.

Die SMTP Forwardings können auch über folgendes Script dokumentiert werden

###############################################################################
# Report Exchange Online Forwardings
# ForwardingAddress = Forwarding via AD Object
# ForwardingSmtpAddress = Emailadress (Can be set by User)
# V1.0 29.09.2020 Andres Bohren
###############################################################################
 
Connect-EXOnline
$Mailboxes = Get-EXOMailbox -Properties DeliverToMailboxAndForward, ForwardingAddress, ForwardingSmtpAddress -ResultSize Unlimited | Where {$_.ForwardingAddress -ne $null -or $_.ForwardingSmtpAddress -ne $null}
 
#AcceptedDomainS
$Domains = (Get-AcceptedDomain).domainName
 
#RemoteDomains
$RemoteDomains = Get-RemoteDomain | where {$_.AutoForwardEnabled -eq $true}
Foreach ($RemoteDomain in $RemoteDomains)
{
$DomainName = $RemoteDomain.DomainName
#Replace "*.securitrans.ch" with "securitrans.ch"
$DomainName = $DomainName.Replace("*.", "")
 
$Domains += "$DomainName"
}
 
#Contains AcceptedDomain and Domains that Allow Forwarding
Write-Host "Internal and RemoteDomains that allow Forwarding" -ForegroundColor Green
$Domains
 
#Create CSV Header
$shortdate = (get-date -f yyyyMMdd)
$CSVFilePath = "$home\Downloads\EmailForwarding$Shortdate.csv"
 
#Check if CSV already exists and delete
if (Test-Path $CSVFilePath)
{
Remove-Item $CSVFilePath
}
 
Add-Content -Path $CSVFilePath -Value "PrimarySmtpAddress;DisplayName;Identity;ForwardingAddress;ForwardingSmtpAddress;DeliverToMailboxAndForward;ResolvedForwardingAddress;InternalorAllowedForwarding"
 
#Loop through Mailboxes with Forwarding
Foreach ($Mailbox in $Mailboxes)
{
 
$PrimarySmtpAddress = $Mailbox.PrimarySmtpAddress
Write-Host "Working On: $PrimarySmtpAddress"
 
$DisplayName = $Mailbox.DisplayName
$Identity = $Mailbox.Identity
$ForwardingAddress = $Mailbox.ForwardingAddress
$ForwardingSmtpAddress = $Mailbox.ForwardingSmtpAddress
$DeliverToMailboxAndForward = $Mailbox.DeliverToMailboxAndForward
$ResolvedForwardingAddress = ""
$InternalorAllowedForwarding = ""
 
#Forwarding via AD Object
If ($ForwardingAddress -ne $null)
{
#Forwarding via AD Object / Contact
$ADRecipient = Get-Recipient -identity $ForwardingAddress
$ResolvedForwardingAddress = $ADRecipient.PrimarySmtpAddress                
 
If ($Domains -match $ForwardingDomain)
{
$InternalorAllowedForwarding = "True"
} else {
$InternalorAllowedForwarding = "False"
}                
 
}
 
# User Forwarding
If ($ForwardingSmtpAddress -ne $null)
{
$ForwardingSmtpAddress = $Mailbox.ForwardingSmtpAddress
$ForwardingDomain = $ForwardingSmtpAddress.Split("@")[1]
 
#Debug
#Write-Host "ForwardingDomain: $ForwardingDomain" -ForegroundColor Magenta
 
If ($Domains -match $ForwardingDomain)
{
$InternalorAllowedForwarding = "True"
} else {
$InternalorAllowedForwarding = "False"
}                
}
 
#WriteLine in CSV
Add-Content -Path $CSVFilePath -Value "$PrimarySmtpAddress;$DisplayName;$Identity;$ForwardingAddress;$ForwardingSmtpAddress;$DeliverToMailboxAndForward;$ResolvedForwardingAddress;$InternalorAllowedForwarding"
      
}
Write-Host "File is written to: $CSVFilePath"
 
 
Write-Host "###############################################################################"
Write-Host "Check also: Security and Compliance Forwarding Report"
Write-Host "https://protection.office.com/reportv2?id=MailFlowForwarding&pivot=Name"
Write-Host "###############################################################################"

SMTP Weiterleitung über Exchange Admin Center (ForwardingAddress)

In den folgenden Screenshots zeige ich euch, wie der Exchange Administrator (oder Recipient Administrator) im Exchange Admin Center eine Emailweiterleitung einrichtet.

In den Postfachfunktionen, den Nachrichtenfluss anklicken

Weiterleitung aktivieren und ein Emailaktiviertes Objekt aus der Globalen Adressliste auswählen,

Das ganze kann man auch in der PowerShell anschauen.

Get-Mailbox -Identity <identity> | fl forwar*

SMTP Weiterleitung über Microsoft 365 Admin Center (ForwardingSMTPAddress)

Neu gibt es im Admin Center unter den Benutzern kann man unter "E-Mail" die Weiterleitung konfigurieren

Hier braucht es kein Emailaktiviertes Objekt im (Azure) Active Directory, sondern einfach nur eine Emailadresse.

Das ganze kann man auch in der PowerShell anschauen.

Get-Mailbox -Identity <identity> | fl forwar*

Man sieht, dass hier das Attribut "ForwardingSmtpAddress" benutzt wird.

Diese Art Weiterleitung löst jedoch auch gleich einen Alert in M365 aus.

Outlook on the Web (ForwardingSMTPAddress)

Im OWA kann ein Benutzer ebenfalls eine Weiterleitung einrichten.

Das ganze kann man auch in der PowerShell anschauen.

Get-Mailbox -Identity <identity> | fl forwar*

Wie man sieht, wird hier ebenfalls das Attribut "ForwardingSMTPAddress" gesetzt.

Auch hier wird ein Forwarding Alert ausgelöst.

RemoteDomain

Im Gegensatz zum Attribut ForwardingAddress, ist beim Attribut ForwardingSMTPAddress das Setting der RemoteDomain wichtig.

Get-RemoteDomain
Get-RemoteDomain -identity <RemoteDomain> | fl

Weiterleitung per Outlook Regel

Natürlich kann man auch noch per Outlook Regel EMails weiterleiten. Das hat den Vorteil, dass nicht alle Nachrichten weitergeleitet werden, sondern Bedingungen für die Weiterleitung gemacht werden können. Beispielsweise nur bei einem bestimmten Absender oder Betreff.

So sieht ein Weitergeleitetes Email einer Outlook Regel aus.

Umleiten funktioniert nur mit internen Accounts

Transport Regel

Es gibt auch noch die Möglichkeit, die Outlook Weiterleitungen über eine Transport Regel abzufangen.

Zusammenfassung

Ich habe das ganze ausgiebig getestet und in einer Tabelle zusammengefasst

AutoForwardingMode

ForwardingAddress (External)

ForwardingAddress (Internal)

ForwardingSMTPAddress (External)

ForwardingSMTPAddress (Internal)

Outlook Rule Forwarding (External)

Outlook Rule Forwarding (Internal)

Outlook Rule Umleiten (Internal)

Off

Nein

JA

Nein

JA

Nein

JA

JA

Off + RemoteDomain

Nein

 

Nein

 

Nein

 

 

On

JA

JA

Nein

JA

Nein

JA

JA

On + RemoteDomain

JA

 

JA

 

JA

 

 

Automatic

Nein

JA

Nein

JA

Nein

JA

JA

Automatic +

RemoteDomain

Nein

 

Nein

 

Nein

 

 

Extern weiterleiten geht nur wenn

  • AutoForwardingMode = On
  • Admin Forwarding an AD Objekt (ForwardingAddress)
  • Oder
  • Bei RemoteDomain erlaubt ist (Outlook Regel und ForwardingSmtpAddress)
  • Keine Transport Regel gesetzt ist welche Client Forwarding blockt

Ich habe versucht das ganze auch noch zu visualisieren.

Hoffe das hilft dem einen oder anderen.

Update:

Ein Kollege hat mich noch auf die Weiterleitung von Power Automate Mails aufmerksam gemacht. Danke Olaf!

Block forwarded Email from Power Automate

https://docs.microsoft.com/en-us/power-platform/admin/block-forwarded-email-from-power-automate

Grüsse
Andres Bohren