Datenbank-E-MailDatabase Mail

Datenbank-E-Mail bietet eine Unternehmenslösung, die zum Senden von E-Mail-Nachrichten mit SQL Server-DatenbankmodulSQL Server Database Engine verwendet werden kann.Database Mail is an enterprise solution for sending e-mail messages from the SQL Server-DatenbankmodulSQL Server Database Engine. Mit Datenbank-E-Mail können Datenbankanwendungen E-Mail-Nachrichten an Benutzer senden.Using Database Mail, your database applications can send e-mail messages to users. Diese Nachrichten können neben Abfrageergebnissen auch Dateien von anderen Ressourcen im Netzwerk enthalten.The messages can contain query results, and can also include files from any resource on your network.

Vorteile der Verwendung von Datenbank-E-Mail Benefits of using Database Mail

Datenbank-E-Mail zeichnet sich durch Zuverlässigkeit, Skalierbarkeit, Sicherheit sowie Unterstützbarkeit aus.Database Mail is designed for reliability, scalability, security, and supportability.

ZuverlässigkeitReliability

  • Datenbank-E-Mail verwendet zum Senden von E-Mail das standardmäßige SMTP (Simple Mail Transfer Protocol).Database Mail uses the standard Simple Mail Transfer Protocol (SMTP) to send mail. Sie können Datenbank-E-Mail auch dann verwenden, wenn auf dem Computer mit SQL ServerSQL Serverkein Client für erweitertes MAPI installiert ist.You can use Database Mail without installing an Extended MAPI client on the computer that runs SQL ServerSQL Server.

  • Prozessisolierung.Process isolation. Zur Verringerung der Auswirkungen auf SQL ServerSQL Serverwird die Komponente zur Übermittlung von E-Mail in einem separaten Prozess, außerhalb von SQL ServerSQL Server, ausgeführt.To minimize the impact on SQL ServerSQL Server, the component that delivers e-mail runs outside of SQL ServerSQL Server, in a separate process. SQL ServerSQL Server fügt E-Mail-Nachrichten auch dann weiter in die Warteschlange ein, wenn der externe Prozess beendet wird oder einen Fehler erzeugt. will continue to queue e-mail messages even if the external process stops or fails. Die Nachrichten in der Warteschlange werden gesendet, sobald der externe Prozess oder der SMTP-Server online geschaltet werden.The queued messages will be sent once the outside process or SMTP server comes online.

  • Failoverkonten.Failover accounts. Mit den Profilen von Datenbank-E-Mail können Sie mehrere SMTP-Server angeben.A Database Mail profile allows you to specify more than one SMTP server. Falls ein SMTP-Server nicht verfügbar ist, können die E-Mail-Nachrichten an einen anderen SMTP-Server übermittelt werden.Should an SMTP server be unavailable, mail can still be delivered to another SMTP server.

  • Clusterunterstützung.Cluster support. Datenbank-E-Mail ist clusterabhängig und wird auf einem Cluster vollständig unterstützt.Database Mail is cluster-aware and is fully supported on a cluster.

SkalierbarkeitScalability

  • Übermittlung im Hintergrund: Datenbank-E-Mail stellt die Übermittlung im Hintergrund bzw. asynchrone Übermittlung bereit.Background Delivery: Database Mail provides background, or asynchronous, delivery. Wenn Sie zum Senden einer Nachricht sp_send_dbmail aufrufen, fügt Datenbank-E-Mail eine Anforderung zu einer Service BrokerService Broker -Warteschlange hinzu.When you call sp_send_dbmail to send a message, Database Mail adds a request to a Service BrokerService Broker queue. Die gespeicherte Prozedur liefert sofort eine Rückgabe.The stored procedure returns immediately. Die externe E-Mail-Komponente empfängt die Anforderung und übermittelt die E-Mail-Nachricht.The external e-mail component receives the request and delivers the e-mail.

  • Mehrere Profile: Mit Datenbank-E-Mail können Sie innerhalb einer SQL ServerSQL Server -Instanz mehrere Profile erstellen.Multiple profiles: Database Mail allows you to create multiple profiles within a SQL ServerSQL Server instance. Wahlweise können Sie auch das Profil auswählen, mit dem Datenbank-E-Mail Nachrichten senden soll.Optionally, you can choose the profile that Database Mail uses when you send a message.

  • Mehrere Konten: Alle Profile können mehrere Failoverkonten enthalten.Multiple accounts: Each profile can contain multiple failover accounts. Sie können verschiedene Profile mit verschiedenen Konten konfigurieren, um E-Mail-Nachrichten über mehrere E-Mail-Server zu verteilen.You can configure different profiles with different accounts to distribute e-mail across multiple e-mail servers.

  • 64-Bit-Kompatibilität: Datenbank-E-Mail wird in 64-Bit-Versionen von SQL ServerSQL Servervollständig unterstützt.64-bit compatibility: Database Mail is fully supported on 64-bit installations of SQL ServerSQL Server.

SicherheitSecurity

  • Standardmäßig deaktiviert: Um die Oberfläche von SQL ServerSQL Serverzu verringern, sind die gespeicherten Prozeduren von Datenbank-E-Mail standardmäßig deaktiviert.Off by default: To reduce the surface area of SQL ServerSQL Server, Database Mail stored procedures are disabled by default.

  • E-Mail-Sicherheit: Zum Senden von Datenbank-E-Mail müssen Sie Mitglied der DatabaseMailUserRole -Datenbankrolle in der msdb -Datenbank sein.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.Profile security: Database Mail enforces security for mail profiles. Wählen Sie die Benutzer oder Gruppen der msdb -Datenbank aus, die Zugriff auf ein Profil von Datenbank-E-Mail besitzen.You choose the msdb database users or groups that have access to a Database Mail profile. Sie können entweder nur bestimmten oder allen Benutzern von msdbZugriff erteilen.You can grant access to either specific users, or all users in msdb. Durch private Profile wird der Zugriff auf eine bestimmte Liste von Benutzern eingeschränkt.A private profile restricts access to a specified list of users. Öffentliche Profile sind für alle Benutzer einer Datenbank verfügbar.A public profile is available to all users in a database.

  • Kontrolle der Anlagengröße: Datenbank-E-Mail erzwingt ein konfigurierbares Limit für die Größe von Anlagendateien.Attachment size governor: Database Mail enforces a configurable limit on the attachment file size. Sie können dieses Limit mithilfe der gespeicherten Prozedur sysmail_configure_sp ändern.You can change this limit by using the sysmail_configure_sp stored procedure.

  • Unzulässige Dateierweiterungen: Datenbank-E-Mail verwaltet eine Liste mit unzulässigen Dateierweiterungen.Prohibited file extensions: Database Mail maintains a list of prohibited file extensions. Dateien, die eine in der Liste aufgeführte Erweiterung besitzen, können nicht angefügt werden.Users cannot attach files with an extension that appears in the list. Sie können diese Liste mithilfe von sysmail_configure_sp ändern.You can change this list by using sysmail_configure_sp.

  • Datenbank-E-Mai wird unter dem SQL ServerSQL Server -Moduldienstkonto ausgeführt.Database Mail runs under the SQL ServerSQL Server Engine service account. Um eine Datei aus einem Ordner einer E-Mail anhängen zu können, muss das SQL ServerSQL Server -Modulkonto über die Berechtigungen zum Zugriff auf den Ordner mit der Datei verfügen.To attach a file from a folder to an email, the SQL ServerSQL Server engine account should have permissions to access the folder with the file.

UnterstützbarkeitSupportability

  • Integrierte Konfiguration: Datenbank-E-Mail verwaltet die Informationen für E-Mail-Konten in SQL Server-DatenbankmodulSQL Server Database Engine.Integrated configuration: Database Mail maintains the information for e-mail accounts within SQL Server-DatenbankmodulSQL Server Database Engine. Mailprofile müssen daher nicht in einer externen Clientanwendung verwaltet werden.There is no need to manage a mail profile in an external client application. Der Assistent zum Konfigurieren von Datenbank-E-Mail stellt eine geeignete Benutzeroberfläche zum Konfigurieren von Datenbank-E-Mail bereit.Database Mail Configuration Wizard provides a convenient interface for configuring Database Mail. Sie können die Konfigurationen für Datenbank-E-Mail auch mithilfe von Transact-SQLTransact-SQLerstellen und verwalten.You can also create and maintain Database Mail configurations using Transact-SQLTransact-SQL.

  • Anmeldung.Logging. Datenbank-E-Mail protokolliert die E-Mail-Aktivität in SQL ServerSQL Server, dem Microsoft Windows-Anwendungsereignisprotokoll und in Tabellen in der msdb -Datenbank.Database Mail logs e-mail activity to SQL ServerSQL Server, the Microsoft Windows application event log, and to tables in the msdb database.

  • Überwachung: Datenbank-E-Mail speichert Kopien von Nachrichten und Anlagen, die innerhalb der msdb -Datenbank gesendet wurden.Auditing: Database Mail keeps copies of messages and attachments sent in the msdb database. Sie können die Verwendung von Datenbank-E-Mail auf einfache Weise überwachen und die gespeicherten Nachrichten überprüfen.You can easily audit Database Mail usage and review the retained messages.

  • Unterstützung von HTML: Mit Datenbank-E-Mail können Sie E-Mail im HTML-Format senden.Support for HTML: Database Mail allows you to send e-mail formatted as HTML.

Architektur der Datenbank-E-Mail Database Mail Architecture

Datenbank-E-Mail wurde basierend auf einer Warteschlangenarchitektur entwickelt, in der Service Broker-Technologien zum Einsatz kommen.Database Mail is designed on a queued architecture that uses service broker technologies. Wenn Benutzer sp_send_dbmailausführen, fügt die gespeicherte Prozedur ein Element in die E-Mail-Warteschlange ein und erstellt einen Datensatz, in dem die E-Mail-Nachricht enthalten ist.When users execute sp_send_dbmail, the stored procedure inserts an item into the mail queue and creates a record that contains the e-mail message. Durch das Einfügen des neuen Eintrags in die E-Mail-Warteschlange wird der externe Prozess von Datenbank-E-Mail (DatabaseMail.exe) gestartet.Inserting the new entry in the mail queue starts the external Database Mail process (DatabaseMail.exe). 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.The external process reads the e-mail information and sends the e-mail message to the appropriate e-mail server or servers. Der externe Prozess fügt für das Ergebnis des Sendevorgangs ein Element in die Statuswarteschlange ein.The external process inserts an item in the Status queue for the outcome of the send operation. 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.Inserting the new entry in the status queue starts an internal stored procedure that updates the status of the e-mail message. 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.Besides storing the sent, or unsent, e-mail message, Database Mail also records any e-mail attachments in the system tables. 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.Database Mail views provide the status of messages for troubleshooting, and stored procedures allow for administration of the Database Mail queue.

Von der msdb-Datenbank werden Nachrichten an einen SMTP-Mailserver gesendetmsdb sends messages to an SMTP mail server

Einführung in Datenbank-E-Mail-Komponenten Introduction to Database Mail Components

In Datenbank-E-Mail sind die folgenden Hauptkomponenten enthalten:Database Mail consists of the following main components:

  • Konfigurations- und SicherheitskomponentenConfiguration and security components

    Datenbank-E-Mail speichert die Konfigurations- und Sicherheitsinformationen in der msdb -Datenbank.Database Mail stores configuration and security information in the msdb database. Konfigurations- und Sicherheitsobjekte erstellen Profile und Konten, die von Datenbank-E-Mail verwendet werden.Configuration and security objects create profiles and accounts used by Database Mail.

  • MessagingkomponentenMessaging components

    Die msdb -Datenbank fungiert als Mailhost-Datenbank, in der die Messagingobjekte enthalten sind, mit denen Datenbank-E-Mail Nachrichten sendet.The msdb database acts as the mail-host database that holds the messaging objects that Database Mail uses to send e-mail. Zu diesen Objekten zählen die gespeicherte Prozedur sp_send_dbmail und die Datenstrukturen mit Informationen zu den Nachrichten.These objects include the sp_send_dbmail stored procedure and the data structures that hold information about messages.

  • Ausführbare Datei von Datenbank-E-MailDatabase Mail executable

    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.The Database Mail executable is an external program that reads from a queue in the msdb database and sends messages to e-mail servers.

  • Protokollierungs- und ÜberwachungskomponentenLogging and auditing components

    Datenbank-E-Mail zeichnet die Protokollinformationen in der msdb -Datenbank und im MicrosoftMicrosoft Windows Anwendungsereignisprotokoll auf.Database Mail records logging information in the msdb database and the MicrosoftMicrosoft Windows application event log.

    Konfigurieren des Agents zur Verwendung von Datenbank-E-Mail:Configuring Agent to use Database Mail:

    Der SQL Server-Agent kann zur Verwendung von Datenbank-E-Mail konfiguriert werden.SQL Server Agent can be configured to use Database Mail. Dies ist für Warnbenachrichtigungen und die automatische Benachrichtigung über den Abschluss von Aufträgen erforderlich.This is required for alert notifications and automatic notification when a job completes.

Warnung

Einzelne Auftragsschritte innerhalb eines Auftrags können ebenfalls E-Mails senden, ohne dass dazu der SQL ServerSQL Server -Agent zur Verwendung von Datenbank-E-Mail konfiguriert werden muss.Individual job steps within a job can also send e-mail without configuring SQL ServerSQL Server Agent to use Database Mail. Ein Transact-SQLTransact-SQL -Auftragsschritt kann beispielsweise Datenbank-E-Mail verwenden, um die Ergebnisse einer Abfrage an eine Reihe von Empfängern zu senden.For example, a Transact-SQLTransact-SQL job step can use Database Mail to send the results of a query to a list of recipients.

Sie können den SQL ServerSQL Server -Agent so konfigurieren, dass E-Mail-Nachrichten in folgenden Fällen an vordefinierte Operatoren gesendet werden:You can configure SQL ServerSQL Server Agent to send e-mail messages to predefined operators when:

  • Eine Warnung wird ausgelöst.An alert is triggered. Warnungen können so konfiguriert werden, dass Benachrichtigungen über bestimmte Ereignisse per E-Mail gesendet werden.Alerts can be configured to send e-mail notification of specific events that occur. Warnungen können beispielsweise so konfiguriert werden, dass ein Operator über bestimmte Datenbankereignisse oder Betriebssystemzustände benachrichtigt wird, die umgehende Maßnahmen erfordern.For example, alerts can be configured to notify an operator of a particular database event or operating system condition that may need immediate action. Weitere Informationen zum Konfigurieren von Warnungen finden Sie unter Warnungen.For more information about configuring alerts, see Alerts.

  • Ein geplanter Task, z. B. eine Datenbanksicherung oder ein Replikationsereignis, wird erfolgreich durchgeführt oder erzeugt einen Fehler.A scheduled task, such as a database backup or replication event, succeeds or fails. Sie können mithilfe von SQL ServerSQL Server-Agent-Mail beispielsweise Operatoren benachrichtigen, wenn ein Fehler bei der Verarbeitung am Monatsende auftritt.For example, you can use SQL ServerSQL Server Agent Mail to notify operators if an error occurs during processing at the end of a month.

Themen zu Datenbank-E-Mail-Komponenten Database Mail Component Topics