Der SQL-Server eignet sich auch hervorragend, um Emails zu versenden. Nicht verwechseln mit einem Spam-Mailschleuder, dazu ist der Datenbankserver nicht gedacht. Doch es gibt durchaus Anwendung, bei denen es sinnvoll ist, dass der SQL-Server direkt Mails verschickt.
Mögliche Anwendungen:
Jeder SQL-Administrator kennt die Fehlermails, die der SQL Server selbst verschickt. Liefert ein automatisierter Job einen Fehler, wird der zuständige Datenbankadministrator per Mail benachrichtigt. Nur selten laufende Jobs können auf diesem Wege eventuell auch im Erfolgsfall eine Statusmail verschicken: Der Datenbankadministrator oder andere im Betrieb zuständige Personen wissen so, dass der Job gelaufen ist.
Auch können so bestimmte Personen auf irgend ein Vorkommnis in der Datenbank hingewiesen werden. Bestimmte Datenbankkonstellationen erfordern das Handeln von Mitarbeiter – eine Mail weist den oder die Mitarbeiter darauf hin.
Die Mail verschicken ist eine schnell erledigte Aufgabe. Die System-Prozedur „sp_send_dbmail“ erledigt diese schnell, wie Sie im untenstehenden Beispiel erkennen können.
USE msdb GO EXEC sp_send_dbmail @profile_name='_SQLUser', @recipients='test@mail.de', @subject='Mein Betreff der Mail', @body='Hier folgt der Email-Text'
Prüfen, ob Mails vom SQL-Server verschickt wurden
Leider kann man sich nicht zu 100 Prozent darauf verlassen, dass eine Mail auch verschickt wurde, auch wenn der ResultCode aus obigem Beispiel positiv ist. Der ResultCode bestätigt nur, dass der Cache die Mail entgegengenommen hat.
Wenn also der Verdacht nahe liegt, dass eine Mail nicht verschickt wurde, bemüht man an besten den folgende System-View aus der Datenbank „msdb“:
SELECT * FROM dbo.sysmail_sentitems ORDER BY sent_date DESC
Alternativ:
SELECT * FROM sysmail_mailitems
Dieser View liefert alle notwendigen Daten der verschickten oder auch anstehenden Mails des SQL-Servers. Wichtig ist das Feld „sent_status“. Es liefert Auskunft darüber, obe eine Mail verschickt wurde, oder ob es beim Versuch, die Mail zuzustellen, zu Problemen gekommen ist.
Weitere Email-Recherche auf dem SQL-Server
Wer noch weitere Informationen über das Mail-Verhalten seines SQL-Servers erhalten will, kann die folgende Abfrage bemühen:
SELECT * FROM sysmail_log