Serverseitige Outlook-Regel zur Weiterleitung des Betreffs an eine Externe E-Mail-Adresse
Hallo zusammen,
wir nutzen in der Firma Office 2013 im Zusammenspiel mit einem Exchange-Server.
Ich würde nun gerne eine Regel mit folgender Logik erstellen:
Bei jeder engehenden Mail soll nur der komplette Betreff an eine externe E-Mail (außerhalb der Domäne) gesendet werden. Hierbei ist wichtig, dass die Regel Serverseitig ist, sodass das Gerät nicht eingeschaltet sein muss.
Hat jemand eine Idee wie man das Umsetzen kann?
wir nutzen in der Firma Office 2013 im Zusammenspiel mit einem Exchange-Server.
Ich würde nun gerne eine Regel mit folgender Logik erstellen:
Bei jeder engehenden Mail soll nur der komplette Betreff an eine externe E-Mail (außerhalb der Domäne) gesendet werden. Hierbei ist wichtig, dass die Regel Serverseitig ist, sodass das Gerät nicht eingeschaltet sein muss.
Hat jemand eine Idee wie man das Umsetzen kann?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 373366
Url: https://administrator.de/forum/serverseitige-outlook-regel-zur-weiterleitung-des-betreffs-an-eine-externe-e-mail-adresse-373366.html
Ausgedruckt am: 22.12.2024 um 15:12 Uhr
2 Kommentare
Neuester Kommentar
Servus,
Entweder selbst einen "Custom Transport Agent" schreiben oder ein Powershell-Skript per EWS das unabhängig auf dem Exchange oder einem anderen Server laufen kann:
Voraussetzungen die für das Skript gegeben sein müssen können hier nachgelesen werden.
Grüße Uwe
Entweder selbst einen "Custom Transport Agent" schreiben oder ein Powershell-Skript per EWS das unabhängig auf dem Exchange oder einem anderen Server laufen kann:
Voraussetzungen die für das Skript gegeben sein müssen können hier nachgelesen werden.
# ===== START VARS =====
# Mailbox dessen Posteingang zu überwachen ist
$global:USERNAME = 'USERNAME'
$global:PASSWORD = 'PASSWORT'
# E-Mail an die der Betreff jeder Mail weitergeleitet wird
$global:TARGETMAIL = 'externaluser@domain.tld'
# Exchange-Server FQDN
$global:EXSERVER = 'SERVERXYZ.DOMAIN.TLD'
# ===== END VARS =====
$global:CONNECTIONTIMEOUT = 30
if ($PSVersionTable.PSVersion.Major -lt 3){write-host "ERROR: Minimum Powershell Version 3.0 is required!" -F Yellow; return}
# EWS DLL laden
Add-Type -Path "$PSScriptRoot\Microsoft.Exchange.WebServices.dll"
Get-EventSubscriber | Unregister-Event -Force
# Allen Zertifikaten vertrauen
Add-Type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
public bool CheckValidationResult(
ServicePoint srvPoint, X509Certificate certificate,
WebRequest request, int certificateProblem) {
return true;
}
}
"@
# Trust all certs policy dem ServicePointManager zuweisen
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
# EWS Objekt erstellen
$global:ews = new-object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2010_SP2)
$global:ews.Url = "https://$global:EXSERVER/ews/exchange.asmx"
# Benutze die Credentials mit dem das Skript ausgeführt wird
$global:ews.UseDefaultCredentials = $false
$global:ews.Credentials = new-object System.Net.NetworkCredential($global:USERNAME,$global:PASSWORD)
$global:subscription = $global:ews.SubscribeToStreamingNotifications([Microsoft.Exchange.WebServices.Data.FolderId[]](New-Object Microsoft.Exchange.WebServices.Data.FolderId ([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)),[Microsoft.Exchange.WebServices.Data.EventType]::NewMail)
$global:connection = New-Object Microsoft.Exchange.WebServices.Data.StreamingSubscriptionConnection($global:ews,$global:CONNECTIONTIMEOUT)
# Event das beim Eintreffen einer/mehrerer neuer Mails ausgeführt wird
Register-ObjectEvent $global:connection -EventName OnNotificationEvent -SourceIdentifier NewMailNotification -Action {
write-host "NewMail subscription event received." -F Green
# Alle eingetroffenen Mails verarbeiten
$Event.SourceEventArgs.Events | %{
# Mail-Details mit übermittelter ItemId abrufen
$mail = [Microsoft.Exchange.WebServices.Data.EmailMessage]::Bind($global:ews, $_.ItemId)
# Wenn die Mail gefunden wurde ...
if ($mail){
# lade Details der Mail
$mail.Load()
$m_from = $mail.From.Address
$m_to = ($mail.ToRecipients | %{$_.Address}) -join ', '
write-host "Forwarding Mail with Subject '$($mail.Subject)' to '$($global:TARGETMAIL)'" -F Green
# create forward message
$mail_fwd = $mail.CreateForward()
# externen Empfänger festlegen
$mail_fwd.ToRecipients.Add($global:TARGETMAIL)
# Body mit Info ersetzen
$mail_fwd.Body = "Received mail with Subject '$($mail.Subject)' from sender: '$m_from' to Recipient(s): '$m_to'"
# mail senden
$mail_fwd.Send()
}
}
}
# Event das beim Disconnect der Verbindung ausgeführt wird (Verbindung wird dann erneut hier wiederhergestellt)
Register-ObjectEvent $global:connection -EventName OnDisconnect -SourceIdentifier OnDisconnectNotification -Action {
write-host "Subscription-Connection disconnected, restarting connection ... " -F Yellow -NoNewline
while(!$global:connection.IsOpen){
$global:connection.Open()
}
write-host "Connected." -F Green
}
# Subscription erstellen
$global:connection.AddSubscription($global:subscription)
# Subscription öffnen
$global:connection.Open()
write-host "Waiting for new events ..." -F Green
while($true){
sleep 1
}