Jump to content

Exchangeserver 2013 Automatische Antwort bei jeder eingehen Mail


Recommended Posts

Hallo zusammen,

 

ich stehe vor dem Problem das bei einem Freigegebenen Postfach folgende Funktion ausgeführt werden soll.

 

In diesem Postfach sollen die Bwerbungen rein kommen.

Jeder der Dort eine Mail hinschreibt soll eine Antwort erhalten nach dem motto.

 

Hallo,

 

Mail ist angekommen wir melden uns.

Unsere DSVGO (Link zum PDF Dokument)

 

und das soll bei jeder Mail raus geschickt werden die rein kommt. Egal ob die Person schon 3 Mal dort hin geschrieben hat oder nicht.

 

Das ganze habe ich schon versucht auf dem Exchangeserver (2013) über die Regeln ab zu fangen. Leider ohne Erfolg.

Mit dem Abwesenheits Assistenen geht es. Da wird aber nur eine Mail pro User versendet. Es soll aber wie schon geschrieben bei jeder Mail diese Antwort geschickt werden.

 

Gibt es hierfür eine recht einfach Lösung?

 

Beste Grüße

 

Markus

Link to post

Hi,

  

vor 25 Minuten schrieb Nobbyaushb:

Gibt noch weitere Hersteller, mit denen habe ich aber keine Erfahrung 

 

Ich kann noch Erfahrung für CodeTwo Exchange Rules Pro (o.ä.) liefern -> Kostet ebenfalls etwas und funktioniert ebenfalls verlässlich. Bietet auch noch weitere "brauchbare" Features.

 

Gruß

Jan

Link to post
vor 35 Minuten schrieb Dukel:

Ein Ticketsystem.

 

Gut das zu wissen, ne spezielle empfehlung?

vor 27 Minuten schrieb Nobbyaushb:

Nicht mit Boardmitteln, das geht nur mit 3rd Party, z.B. Exclaimer Autoresponder

https://www.exclaimer.com/de//auto-responder/

Kostet zwar ein bisschen, ist aber jeden Cent wert.

Gibt noch weitere Hersteller, mit denen habe ich aber keine Erfahrung 

:-)

Das dachte ich mir das das ganze nicht so einfach mit dem Exchange zu lösen ist.

 

Kannst mir dazu mal etwas Erfarung von dir mitteilen?

vor 15 Minuten schrieb cj_berlin:

Moin,

 

mit einer Transportregel geht es nicht, wohl aber mit einer Postfachregel. Da gibt es die Action "Diese vom Server mit einer Nachricht beantworten".

Nein das geht leider auch nicht. Da dazu ja ein Outlook offen sein muss.

Link to post
vor 4 Minuten schrieb shooan:

Nein das geht leider auch nicht. Da dazu ja ein Outlook offen sein muss.

Nein. Wenn Du "vom Server beantworten" und nicht "beantworten" wählst, muss Outlook nicht laufen. Allerdings müssen automatische Antworten für alle Remote-Domains erlaubt sein.

 

Aber Exchange Rules Pro oder ein ähnliches Third Party-Produkt ist in der Regel jeden Cent wert ;-)

Link to post
vor 38 Minuten schrieb shooan:

 Kannst mir dazu mal etwas Erfarung von dir mitteilen?

Du musst zwingend mindestens 1 Jahr Support dazu kaufen, erste RG liegt also bei ca. 1.000,00 €

Ansonsten super einfach und macht was es soll

Geht übrigens auch bei Verteilern!

vor 38 Minuten schrieb shooan:

Nein das geht leider auch nicht. Da dazu ja ein Outlook offen sein muss.

Das stimmt nicht - wenn du das Postfach mit OWA öffnest und diese Regel dort erstellst ist das eine Regel auf dem Postfach selbst, also eine serverbasierte Regel

Dazu braucht man aber Zugang zu Postfach, das nicht immer erwünscht oder möglich ist.

:-)
Ups, Evgenij war schneller, bitte auch beachten!

Nachtrag - zu wann habt ihr die Migration geplant?

 

2013 ist ja nun schon eine ganze Weile aus dem Mainstream raus und auch das Ende vom Extended Support ist nicht mehr weit weg...

Build-Nummern Tabellarisch - Nobbys Web - das Exchange Forum

 

Edited by Nobbyaushb
Link to post
vor 7 Stunden schrieb shooan:

Kannst mir dazu mal etwas Erfarung von dir mitteilen?

Ja, funktioniert weitgehend problemlos. Ausnahmen sind Absender, die ebenfalls mit automatischen Antworten antworten, denn die antworten ja auf automatische Antworten. ;) Deswegen ist so ein System immer nur so gut, wie die die drauf aufpassen. Aber technisch funktioniert Exclaimer gut. :)

vor 7 Stunden schrieb Nobbyaushb:

Du musst zwingend mindestens 1 Jahr Support dazu kaufen, erste RG liegt also bei ca. 1.000,00 €

 

Ups, sind die inzwischen so teuer geworden? Lustig hab grad auf der Webseite nachgeschaut. Heftiger Preisanstieg :) Ich hab hier noch ne Kundenrechnung, die grad mal deutlich niedriger lag. Aber selbst dann, ist immer noch ok der Preis.

Link to post
vor 14 Stunden schrieb NorbertFe:

Ja, funktioniert weitgehend problemlos. Ausnahmen sind Absender, die ebenfalls mit automatischen Antworten antworten, denn die antworten ja auf automatische Antworten. 

Die aktuelle Version erkennt Mail Loops 

 

:-)

Link to post

Also das Ganze Problem konnte ich nun lösen mit dem EWS.

 

Das Skript schaut nun so aus

# ===== START VARS =====
# Mailbox dessen Posteingang zu überwachen ist
$global:USERNAME = 'USERNAME'
$global:PASSWORD = 'PASSSWORD'
# Exchange-Server FQDN
$global:EXSERVER = 'EX.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 = $null
        try{
            [Microsoft.Exchange.WebServices.Data.EmailMessage]$mail = [Microsoft.Exchange.WebServices.Data.EmailMessage]::Bind($global:ews,$_.ItemId)
        }catch{}
        # Wenn die Mail gefunden wurde ...
        if ($mail){
            # lade Details der Mail
            $mail.Load()
            write-host "Replying  Mail with Subject '$($mail.Subject)' to '$($mail.Sender.Address)'" -F Green
            # Antwort erstellen
            $mail_reply = $mail.CreateReply($false)
            # benutzerdefinierte Antwort angeben
            $mail_reply.BodyPrefix = 'Sehr geehrte Damen und Herren,<br/>das ist Test.<br/>Mit freundlichen Grüßen<br/>Firma XYZ'
            # Antworten senden und Kopie speichern
            $mail_reply.SendAndSaveCopy()
            # Ursprüngliche Mail als gelesen markieren
            $mail.IsRead = $true
        }
    }
}

# 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
}

 

Es geht auch wenn man es in der Powershell ausführt.

 

Das Skript liegt im EWS Verzeichniss auf dem Exchange Server. Wenn man diese in der Powershell startet wenn man in dem EWS verzeichniss drinnen ist geht es und beantwortet mir auch meine Mails.

Aber dazu muss immer die Powershell Konsole offen sein und der User angemeldet.

Das ist blöde weil mann muss daran denken wenn der Server mal neu gestartet wird.

 

Kann man das Ganze auch über die Aufgabenplanung bewerkstelligen? So das das Skript erst startet wenn alle Dienste des exchange Server gestartet sind?

Link to post

 

vor 11 Minuten schrieb shooan:

Das ist blöde weil mann muss daran denken wenn der Server mal neu gestartet wird.

 

 

Man kann ja immer viel skripten und tun, aber manchmal ists einfacher das Rad nicht jedesmal neu zu erfinden. :)

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...