Architektur der Datenbank-E-Mail

In Datenbank-E-Mail sind die folgenden Hauptkomponenten enthalten:

  • Konfigurations- und Sicherheitskomponenten

    Datenbank-E-Mail speichert die Konfigurations- und Sicherheitsinformationen in der msdb-Datenbank. Konfigurations- und Sicherheitsobjekte erstellen Profile und Konten, die von Datenbank-E-Mail verwendet werden.

  • Messagingkomponenten

    Die msdb-Datenbank fungiert als Mailhost-Datenbank, in der die Messagingobjekte enthalten sind, mit denen von Datenbank-E-Mail Nachrichten gesendet werden. Zu diesen Objekten zählen die gespeicherte Prozedur sp_send_dbmail und die Datenstrukturen mit Informationen zu den Nachrichten.

  • Ausführbare Datei von Datenbank-E-Mail

    Die ausführbare Datei von Datenbank-E-Mail ist ein externes Programm, das Nachrichten aus einer Warteschlange in der msdb-Datenbank liest und an E-Mail-Server sendet.

  • Protokollierungs- und Überwachungskomponenten

    Datenbank-E-Mail zeichnet die Protokollinformationen in der msdb-Datenbank und im Microsoft Windows Anwendungsereignisprotokoll auf.

Sie müssen die Architektur von Datenbank-E-Mail nicht genau kennen, um Datenbank-E-Mail effektiv zu verwenden. Kenntnisse in Bezug auf die Datenbank-E-Mail-Komponenten und deren Interaktion können jedoch beim Entwerfen von Anwendungen und beim Lösen von Problemen nützlich sein.

In der folgenden Abbildung wird ein Überblick zur Architektur von Datenbank-E-Mail dargestellt.

Von der msdb-Datenbank werden Nachrichten an einen SMTP-Mailserver gesendet

Datenbank-E-Mail wurde basierend auf einer Warteschlangenarchitektur entwickelt, in der Service Broker-Technologien zum Einsatz kommen. Wenn Benutzer sp_send_dbmail ausführen, wird von der gespeicherten Prozedur ein Element in die E-Mail-Warteschlange eingefügt und ein Datensatz erstellt, in dem die E-Mail-Nachricht enthalten ist. Durch das Einfügen des neuen Eintrags in die E-Mail-Warteschlange wird der externe Prozess von Datenbank-E-Mail (DatabaseMail.exe) gestartet. Der externe Prozess liest die E-Mail-Informationen und sendet die E-Mail-Nachricht an den entsprechenden E-Mail-Server bzw. an mehrere E-Mail-Server. Der externe Prozess fügt für das Ergebnis des Sendevorgangs ein Element in die Statuswarteschlange ein. Durch das Einfügen des neuen Eintrags in die Statuswarteschlange wird eine interne gespeicherte Prozedur gestartet, mit der der Status der E-Mail-Nachricht aktualisiert wird. Zusätzlich zum Speichern der gesendeten (oder nicht gesendeten) E-Mail-Nachricht werden von Datenbank-E-Mail auch alle E-Mail-Anhänge in den Systemtabellen gespeichert. In den Sichten von Datenbank-E-Mail wird der Status der Nachrichten zur Problembehandlung gezeigt. Die Warteschlange von Datenbank-E-Mail kann mithilfe gespeicherter Prozeduren verwaltet werden.

Ausschließlich Mitglieder der DatabaseMailUserRole in der msdb-Datenbank können sp_send_dbmail ausführen.