Datenbank-E-Mail

Gilt für:SQL ServerAzure SQL Managed Instance

Datenbank-E-Mail ist eine Unternehmenslösung zum Senden von E-Mail-Nachrichten aus dem SQL Server-Datenbankmodul oder azure SQL Managed Instance. Ihre Anwendungen können E-Mail-Nachrichten an Benutzer senden, die Datenbank-E-Mail über einen externen SMTP-Server verwenden. Diese Nachrichten können neben Abfrageergebnissen auch Dateien von anderen Ressourcen im Netzwerk enthalten.

Hinweis

Datenbank-E-Mail ist in SQL Server-Datenbankmodul und azure SQL Managed Instance, aber nicht in Azure SQL-Datenbank-Singleton und elastischen Pools verfügbar. Weitere Informationen zur Verwendung von Database Mail in azure SQL Managed Instance finden Sie unter Automatisieren von Verwaltungsaufgaben mithilfe von SQL-Agent-Aufträgen in azure SQL Managed Instance.

Vorteile der Verwendung von Datenbank-E-Mail

Datenbank-E-Mail zeichnet sich durch Zuverlässigkeit, Skalierbarkeit, Sicherheit sowie Unterstützbarkeit aus.

Zuverlässigkeit

  • Datenbank-E-Mail verwendet zum Senden von E-Mail das standardmäßige SMTP (Simple Mail Transfer Protocol). Sie können Datenbank-Mail verwenden, ohne einen erweiterten MAPI-Client auf dem Computer zu installieren, auf dem SQL Server ausgeführt wird.

  • Prozessisolierung. Um die Auswirkungen auf SQL Server zu minimieren, wird die Komponente, die E-Mails liefert, außerhalb von SQL Server ausgeführt, in einem separaten Prozess. SQL Server führt weiterhin E-Mail-Nachrichten in die Warteschlange ein, auch wenn der externe Prozess beendet oder fehlschlägt. Die Nachrichten in der Warteschlange werden gesendet, sobald der externe Prozess oder der SMTP-Server online geschaltet werden.

  • Failoverkonten. Mit den Profilen von Datenbank-E-Mail können Sie mehrere SMTP-Server angeben. Falls ein SMTP-Server nicht verfügbar ist, können die E-Mail-Nachrichten an einen anderen SMTP-Server übermittelt werden.

  • Clusterunterstützung. Datenbank-E-Mail ist clusterabhängig und wird auf einem Cluster vollständig unterstützt.

Skalierbarkeit

  • Übermittlung im Hintergrund: Datenbank-E-Mail stellt die Übermittlung im Hintergrund bzw. asynchrone Übermittlung bereit. Wenn Sie zum Senden einer Nachricht aufrufen sp_send_dbmail , fügt Datenbank-E-Mail eine Anforderung zu einer Service Broker-Warteschlange hinzu. Die gespeicherte Prozedur liefert sofort eine Rückgabe. Die externe E-Mail-Komponente empfängt die Anforderung und übermittelt die E-Mail-Nachricht.

  • Mehrere Profile: Mit Datenbank-Mail können Sie mehrere Profile innerhalb einer SQL Server-Instanz erstellen. Wahlweise können Sie auch das Profil auswählen, mit dem Datenbank-E-Mail Nachrichten senden soll.

  • Mehrere Konten: Alle Profile können mehrere Failoverkonten enthalten. Sie können verschiedene Profile mit verschiedenen Konten konfigurieren, um E-Mail-Nachrichten über mehrere E-Mail-Server zu verteilen.

  • 64-Bit-Kompatibilität: Datenbank-Mail wird bei 64-Bit-Installationen von SQL Server vollständig unterstützt.

Sicherheit

  • Standardmäßig deaktiviert: Um den Oberflächenbereich von SQL Server zu verringern, sind gespeicherte Datenbank-E-Mail-Prozeduren standardmäßig deaktiviert.

  • Mail Security:To send Database Mail, you must be a member of the DatabaseMailUserRole database role in the msdb database.

  • Profilsicherheit: Datenbank-E-Mail erzwingt die Sicherheit von Mailprofilen. Sie wählen die msdb Datenbankbenutzer oder -gruppen aus, die Zugriff auf ein Datenbank-E-Mail-Profil haben. Sie können zugriff auf bestimmte Benutzer oder alle Benutzer in msdb. Durch private Profile wird der Zugriff auf eine bestimmte Liste von Benutzern eingeschränkt. Öffentliche Profile sind für alle Benutzer einer Datenbank verfügbar.

  • Kontrolle der Anlagengröße: Datenbank-E-Mail erzwingt ein konfigurierbares Limit für die Größe von Anlagendateien. Sie können dieses Limit mithilfe der gespeicherten Prozedur sysmail_configure_sp ändern.

  • Unzulässige Dateierweiterungen: Datenbank-E-Mail verwaltet eine Liste mit unzulässigen Dateierweiterungen. Dateien, die eine in der Liste aufgeführte Erweiterung besitzen, können nicht angefügt werden. Sie können diese Liste mithilfe von sysmail_configure_sp ändern.

  • Datenbank-E-Mail wird unter dem SQL Server-Moduldienstkonto ausgeführt. Um eine Datei aus einem Ordner an eine E-Mail anzufügen, sollte das SQL Server-Modulkonto über Berechtigungen für den Zugriff auf den Ordner mit der Datei verfügen.

Support-Fähigkeit

  • Integrierte Konfiguration: Datenbank-E-Mail verwaltet die Informationen für E-Mail-Konten im SQL Server-Datenbankmodul. Mailprofile müssen daher nicht in einer externen Clientanwendung verwaltet werden. Der Assistent zum Konfigurieren von Datenbank-E-Mail stellt eine geeignete Benutzeroberfläche zum Konfigurieren von Datenbank-E-Mail bereit. Sie können datenbankbasierte E-Mail-Konfigurationen auch mithilfe von Transact-SQL erstellen und verwalten.

  • Protokollierung: Datenbank-E-Mail protokolliert E-Mail-Aktivitäten in SQL Server, das Ereignisprotokoll der Microsoft Windows-Anwendung und Tabellen in der msdb Datenbank.

  • Überwachung: Datenbank-E-Mail speichert Kopien von Nachrichten und Anlagen, die in der msdb Datenbank gesendet werden. Sie können die Verwendung von Datenbank-E-Mail auf einfache Weise überwachen und die gespeicherten Nachrichten überprüfen.

  • Unterstützung von HTML: Mit Datenbank-E-Mail können Sie E-Mail im HTML-Format senden.

Architektur der Datenbank-E-Mail

Datenbank-E-Mail wurde basierend auf einer Warteschlangenarchitektur entwickelt, in der Service Broker-Technologien zum Einsatz kommen. Wenn Benutzer ausgeführt werden sp_send_dbmail, fügt die gespeicherte Prozedur ein Element in die E-Mail-Warteschlange ein und erstellt einen Datensatz, der die E-Mail-Nachricht enthält. 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.

msdb sends messages to an SMTP mail server

Einführung in Datenbank-E-Mail-Komponenten

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

  • Konfigurations- und Sicherheitskomponenten

    Datenbank-Mail speichert 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 E-Mail-Hostdatenbank, die die Nachrichtenobjekte enthält, die Database Mail zum Senden von E-Mails verwendet. Zu diesen Objekten gehören die sp_send_dbmail gespeicherte Prozedur und die Datenstrukturen, die Informationen zu Nachrichten enthalten.

  • Ausführbare Datei von Datenbank-E-Mail

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

  • Protokollierungs- und Überwachungskomponenten

    Datenbank-Mail zeichnet Protokollierungsinformationen in der msdb Datenbank und im Ereignisprotokoll der Microsoft Windows-Anwendung auf.

Konfigurieren des SQL-Agents für die Verwendung von Datenbank-Mail

Der SQL Server-Agent kann zur Verwendung von Datenbank-E-Mail konfiguriert werden. Dies ist für Warnbenachrichtigungen und die automatische Benachrichtigung über den Abschluss von Aufträgen erforderlich.

Warnung

Einzelne Auftragsschritte innerhalb eines Auftrags können auch E-Mails senden, ohne SQL Server-Agent für die Verwendung von Datenbank-Mail zu konfigurieren. Beispielsweise kann ein Transact-SQL-Auftragsschritt Datenbank-E-Mail verwenden, um die Ergebnisse einer Abfrage an eine Liste von Empfängern zu senden.

Sie können den SQL Server-Agent so konfigurieren, dass E-Mail-Nachrichten an vordefinierte Operatoren gesendet werden, wenn:

  • Eine Warnung wird ausgelöst. Warnungen können so konfiguriert werden, dass Benachrichtigungen über bestimmte Ereignisse per E-Mail gesendet werden. Warnungen können beispielsweise so konfiguriert werden, dass ein Operator über bestimmte Datenbankereignisse oder Betriebssystemzustände benachrichtigt wird, die umgehende Maßnahmen erfordern. Weitere Informationen zum Konfigurieren von Warnungen finden Sie unter Warnungen.

  • Ein geplanter Task, z. B. eine Datenbanksicherung oder ein Replikationsereignis, wird erfolgreich durchgeführt oder erzeugt einen Fehler. Sie können beispielsweise SQL Server Agent Mail verwenden, um Operatoren zu benachrichtigen, wenn am Ende eines Monats ein Fehler auftritt.

Siehe auch

Nächste Schritte