Datenbank-E-Mail-Profile

Ein Datenbank-E-Mail-Profil ist eine sortierte Auflistung zugehöriger Datenbank-E-Mail-Konten. Um E-Mail zu senden, müssen Sie Mitglied der DatabaseMailUserRole in der msdb-Datenbank sein und Zugriff auf mindestens ein Datenbankprofil besitzen. Mit Profilen können Datenbankadministratoren gespeicherte Prozeduren und Datenbankanwendungen, die E-Mails verwenden, neu konfigurieren, ohne den Anwendungscode zu ändern. Ein Profil kann während des Entwickelns und Testens einer Anwendung beispielsweise mit einem Satz von E-Mail-Konten konfiguriert werden und dann, wenn die Anwendung in Produktion geht, mit einem anderen Satz Konten aktualisiert werden. Die Anwendung verwendet denselben Profilnamen, verwendet beim Senden der E-Mails aber eine andere Liste von E-Mail-Servern.

HinweisHinweis

Da Datenbank-E-Mail die Messaging Application Programming Interface (MAPI) nicht verwendet, handelt es sich bei Datenbank-E-Mail-Profilen nicht um MAPI-Mailprofile. Datenbank-E-Mail verwendet keine SQL Mail-Profile.

Profile verbessern die Zuverlässigkeit in Fällen, wo ein E-Mail-Server nicht erreichbar ist oder die Nachrichten nicht verarbeiten kann. Jedes im Profil enthaltene Konto besitzt eine Sequenznummer. Über die Sequenznummer wird die Reihenfolge festgelegt, in der Konten im Profil von Datenbank-E-Mail verwendet werden. Bei einer neuen E-Mail-Nachricht verwendet Datenbank-E-Mail das letzte Konto, über das eine Nachricht erfolgreich gesendet wurde, oder – falls noch keine Nachricht gesendet wurde – das Konto mit der niedrigsten Sequenznummer. Wenn dieses Konto fehlschlägt, verwendet Datenbank-E-Mail das Konto mit der nächsthöheren Sequenznummer usw., bis entweder Datenbank-E-Mail die Nachricht erfolgreich versendet oder das Konto mit der höchsten Sequenznummer fehlschlägt. Wenn das Konto mit der höchsten Sequenznummer fehlschlägt, unterbricht die Datenbank-E-Mail die Versuche zum Senden der E-Mail für den Zeitraum, der im AccountRetryDelay-Parameter von sysmail_configure_sp konfiguriert ist. Danach wird das Senden der E-Mail erneut gestartet, wobei mit der niedrigsten Sequenznummer begonnen wird. Verwenden Sie den AccountRetryAttempts-Parameter von sysmail_configure_sp, um zu konfigurieren, wie oft der externe Mailprozess versuchen soll, die E-Mail-Nachricht mithilfe der einzelnen Konten im angegebenen Profil zu senden.

Sind mehrere Konten mit der gleichen Sequenznummer vorhanden, verwendet Datenbank-E-Mail nur eines dieser Konten für eine bestimmte E-Mail-Nachricht. In diesem Fall kann Datenbank-E-Mail nicht garantieren, welches der Konten für diese Sequenznummer verwendet wird oder dass für die einzelnen Nachrichten jeweils dasselbe Konto verwendet wird.

Über Profile können Datenbankadministratoren auch den E-Mail-Zugriff besser kontrollieren. Die Mitgliedschaft in DatabaseMailUserRole ist zum Senden von Datenbank-E-Mail erforderlich. Profile bieten Administratoren bei der Kontrolle der Benutzer, die E-Mail senden, und der verwendeten Konten zusätzliche Flexibilität. Datenbank-E-Mail führt für jedes private Profil eine Liste von Benutzern, die berechtigt sind, mithilfe dieses Profils E-Mail zu senden. Öffentliche Profile sind für Benutzer oder Rollen der msdb-Datenbank verfügbar, die auch Mitglied der DatabaseMailUserRole sind.

Standardmäßig ist ein Profil privat, d. h., kein Benutzer ist berechtigt, auf das Profil zuzugreifen. Um ein Profil öffentlich zu machen, muss dem Benutzer 'public' oder der Benutzer-ID 0 der Zugriff gewährt werden. Weitere Informationen zum Gewähren von Zugriff auf Profile finden Sie unter sysmail_add_principalprofile_sp (Transact-SQL).

Ein Profil kann ein Standardprofil sein. In diesem Fall können Benutzer mithilfe des Profils E-Mail senden, ohne das Profil explizit anzugeben. Falls der Benutzer, der die E-Mail-Nachricht sendet, über ein privates Standardprofil verfügt, verwendet Datenbank-E-Mail dieses Profil. Verfügt der Benutzer nicht über ein privates Standardprofil, verwendet sp_send_dbmail das öffentliche Standardprofil für die Datenbank. Falls weder ein privates Standardprofil für den Benutzer noch ein öffentliches Standardprofil für die Datenbank vorhanden ist, gibt sp_send_dbmail einen Fehler zurück. In allen Fällen muss ein Benutzer Mitglied der DatabaseMailUserRole sein, um Datenbank-E-Mail zu senden.