Der SQl-Server ab Version 2005 besitzt die Fähigkeit, eine E-Mail erstellen und versenden zu können. Diesen Umstand kann man sich zu Nutze machen, um in besonderen Fällen, wie zum Beispiel den Ausfall eines regelmäßig eintretenden Zustands, eine E-Mail an einen Administrator zu versenden.

Im folgenden Artikel wird zuerst ein E-Mail-Konto eingerichtet. Hier erfahren Sie alle Schritte, bis zum Versand einer Test-E-Mail. Anschließend erstellen wir eine gespeicherte Prozedur, um eine konfigurierte E-Mail zu versenden. Um den Vorgang automatisch durchführen zu lassen, wird abschließend ein Auftrag erstellt, welches die gespeicherte Prozedur regelmäßig aufruft.
Der hier aufgeführte Vorgang beschreibt exemplarisch den vollständigen Vorgang und kann in allen Bereichen vielfach angepasst werden.

 

Voraussetzungen

  • Microsoft SQL Server 2005 inkl. Microsoft SQL Server Management Studio oder neuer (Die Darstellungen weichen in anderen Versionen des SQL-Servers unter Umständen von den hier gezeigten ab.)
  • E-Mail-Daten (E-Mail-Adresse, E-Mail-Server-Name, Account-Name, Kennwort, vom Standard abweichende Konfigurationsdaten)

 

Einrichtung eines E-Mail-Kontos

  • im geöffneten Datenbank-Modul den Menüpunkt Datenbank-E-Mail im Bereich Verwaltung doppelklicken
    Der folgende Begrüßungsbildschirm fasst die Möglichkeiten zusammen und lässt sich ausblenden.
    [singlepic id=47 float=]

  • die erste Option wählen und auf Weiter klicken
    Dieser Dialog wird auch angezeigt, wenn ein bestehendes Konto modifiziert werden soll.
    [singlepic id=48 float=]

  • Profilname wählen und neues Konto erstellen
    Ein E-Mail-Konto wird einem Profil zugeordnet. Will man ein neues Konto einem bestehendem Profil zuordnen, muss man im vorangehenden Dialog die entsprechende Option gewählt haben.
    [singlepic id=49 float=]

  • Neues Konto anklicken
    Hier kann ebenfalls ein bestehendes Konto dem Profil zugeordnet werden. Dann ist mit der Wahl nichts weiter zu tun und der Dialog kann bestätigt werden.
    [singlepic id=50 float=]

  • Konto-Daten eintragen
    Zum einfachen Versenden von E-Mails, die keine Antwort erwarten, ist es ausreichend die E-Mail-Adresse, den Anzeigename und den Servernamen des SMTP-Servers anzugeben. Accountname und Kennwort werden im unteren Bereich hinterlegt. Wird ein eigener E-Mail-Server verwendet, kann hier u.U. auch mit der Windows-Authentifizierung gearbeitet werden.
    [singlepic id=51 float=]

  • weitere E-Mail-Konten hinzufügen oder auf Weiter klicken
    Die E-Mail-Konten werden in der angegebenen Reihenfolge benutzt, sollte es ein Versandproblem geben.
    [singlepic id=52 float=]

  • Profil auf öffentlich setzen
    Öffentliche Profile können von allen Benutzern des SQL-Servers verwendet werden.
    [singlepic id=53 float=]

Nach der Erstellung lässt sich über das Kontextmenü eine Test-E-Mail versenden.

 

Implementierung einer gespeicherten Prozedur

Der SQL-Server bietet mit dem Versenden von E-Mails ein mächtiges Werkzeug. Neben dem Versand einfacher E-Mails können Dateien, Tabelleninhalte und weitere Daten verschickt werden. Des weiteren ist es möglich die E-Mail sowohl im Text- als auch HTML-Format zu erstellen.

Das folgende Beispiel gibt einen einfachen Einsatz des E-Mail-Versands. In einer Konfigurationstabelle werden Absender-Name und die Liste der Empfänger-Adressen hinterlegt. Des Weiteren wird eine Protokoll-Tabelle herangezogen, um ihren letzten Eintrag in den Body der E-Mail anzuzeigen.
[singlepic id=55 float=]

Den Abschluss der Methode macht der Aufruf der E-Mail-Funktion des Servers. In der folgenden Abbildung ist die vollständige Syntax des Befehls abgebildet.
[singlepic id=54 float=] In der Abfrage der Protokoll-Datei kann dann eine Überprüfung erfolgen, falls die E-Mail nur unter festgelegten Bedingungen verschickt werden soll.

Nach Wahl der Datenbank wird mit Klick auf Ausführen die gespeicherte Prozedur der Datenbank hinzugefügt
[singlepic id=61 float=] Eine einfache Möglichkeit, die Methode zu testen, besteht darin, den letzten Befehl auszukommentieren und die Parameter per PRINT-Befehl im Direktausgabefenster anzeigen zu lassen.

 

Erstellung eines Auftrags als Zeitsteuerung

Der im Folgenden erstellte Auftrag ruft die Prozedur zum Mailversand alle 2 Stunden während üblicher Arbeitszeit werktags auf.

  •  neuen Auftrag anlegen
    [singlepic id=56 float=]

  • Allgemeine Informationen eintragen
    Der Name ist der Anzeigename in der Baumansicht unter Aufträge.
    Der Besitzer sollte auf einen Account gewechselt werden, dar über ausreichend Rechte verfügt.
    Sind keine Probeläufe nötig, kann das Häkchen bei Aktiviert belassen werden.
    [singlepic id=57 float=]

  • Arbeitsschritt anlegen
    Jedwede Aktion, die ausgeführt werden soll, wird hier angelegt.

    • Allgemeines
      Der Name des Schrittes dient der Orientierung bei Anlage mehrerer Aktionen. Da eine gespeicherte Prozedur ausgeführt werden soll, muss als Typ ‚Transact-SQL-Skript (T-SQL)‘ ausgewählt werden.
      Das Ausführen des Codes geschieht im Bereich Befehl. Dem Prozedurnamen wird hier ‚exec ‚ vorangestellt.
      [singlepic id=58 float=]

    • Erweiterte Einstellungen
      Miss- und Erfolgsaktionen werden hier ausgewählt. Da nur eine E-Mail versendet werden soll, wird der Auftrag bei Erfolg mit einer Erfolgsmeldung abgeschlossen.
      [singlepic id=59 float=]

  • Zeitplan anlegen
    Eine Zusammenfassung der getätigten Einstellungen kann im unteren Bereich des Formulars eingesehen werden.
    [singlepic id=60 float=]

Ist die Erstellung des Auftrags nicht sicher oder die Funktion ungetestet, bietet es sich an, den Auftrag zu deaktivieren. Dies kann über die Eigenschaften oder über das Kontextmenü geschehen. Ebenfalls über das Kontextmenü lässt sich der Auftrag mit ‚Auftrag starten bei Schritt‘ manuell starten.