Problembehandlung bei Datenbank-E-Mail: Allgemeine Schritte
Beim Behandeln von Problemen mit der Datenbank-E-Mail werden die folgenden allgemeinen Bereiche des Systems Datenbank-E-Mail überprüft. Diese Verfahren sind in logischer Reihenfolge aufgeführt, können jedoch in beliebiger Folge ausgewertet werden.
Ermitteln, ob die Datenbank-E-Mail aktiviert ist
Zeigen Sie im Menü Start auf Alle Programme, zeigen Sie auf Microsoft SQL Server 2005 und dann auf Konfigurationstools, und klicken Sie anschließend auf SQL Server Oberflächenkonfiguration.
Klicken Sie auf Oberflächenkonfiguration für Features.
Erweitern Sie unter MSSQLSERVER den Knoten Datenbankmodul, und klicken Sie dann auf Datenbank-E-Mail.
Überprüfen Sie, ob Gespeicherte Prozeduren der Datenbank-E-Mail aktivieren aktiviert ist, und klicken Sie dann auf Übernehmen.
Beenden Sie das Tool für die SQL Server-Oberflächenkonfiguration.
Ermitteln, ob Benutzer zum Senden von Datenbank-E-Mails richtig konfiguriert sind
Um Datenbank-E-Mails zu senden, müssen Benutzer Mitglied der DatabaseMailUserRole sein. Mitglieder der festen Serverrolle sysadmin und der Rolle msdbdb_owner sind automatisch Mitglied der Rolle DatabaseMailUserRole. Führen Sie die folgende Anweisung aus, um alle anderen Mitglieder der Rolle DatabaseMailUserRole anzuzeigen:
EXEC msdb.sys.sp_helprolemember 'DatabaseMailUserRole' ;
Verwenden Sie die folgende Anweisung, um der Rolle DatabaseMailUserRole Benutzer hinzuzufügen:
sp_addrolemember @rolename = 'DatabaseMailUserRole', @membername = '<database user>'
Um Datenbank-E-Mails zu senden, müssen Benutzer Zugriff auf mindestens ein Datenbank-E-Mail-Profil haben. Führen Sie die folgende Anweisung aus, um die Benutzer (Prinzipale) und die Profile anzuzeigen, auf die diese zugreifen können.
EXEC msdb.dbo.sysmail_help_principalprofile_sp ;
Verwenden Sie den Assistenten zum Konfigurieren der Datenbank-E-Mail, um Profile zu erstellen und Benutzern den Zugriff auf Profile zu gewähren.
Prüfen, ob die Datenbank-E-Mail gestartet wurde
Das externe Datenbank-E-Mail-Programm wird aktiviert, wenn zu verarbeitende E-Mail-Nachrichten vorhanden sind. Wenn keine zu sendenden Nachrichten für den angegebenen Timeoutzeitraum vorhanden sind, wird das Programm beendet. Führen Sie die folgende Anweisung aus, um zu überprüfen, ob die Datenbank-E-Mail-Aktivierung gestartet wurde.
EXEC msdb.dbo.sysmail_help_status_sp ;
Wenn die Datenbank-E-Mail-Aktivierung nicht gestartet wurde, führen Sie zum Aktivieren die folgende Anweisung aus:
EXEC msdb.dbo.sysmail_start_sp
Wenn das externe Datenbank-E-Mail-Programm gestartet wurde, überprüfen Sie den Status der E-Mail-Warteschlange mit der folgenden Anweisung:
EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'mail' ;
Die E-Mail-Warteschlange muss den Status RECEIVES_OCCURRING aufweisen. Der Status der Warteschlange kann sich von einem Moment zum anderen ändern. Wenn die E-Mail-Warteschlange nicht den Status RECEIVES_OCCURRING aufweist, beenden Sie die Warteschlange mithilfe von sysmail_stop_sp, und starten Sie die Warteschlange mithilfe von sysmail_start_sp erneut.
Hinweis: |
---|
Legen Sie die Anzahl der E-Mails in der E-Mail-Warteschlange mithilfe der length-Spalte im Resultset von sysmail_help_queue_sp fest. |
Ermitteln Sie, ob sich Probleme mit der Datenbank-E-Mail auf alle oder auf nur einige Konten in einem Profil auswirken.
Wenn Sie festgestellt haben, dass einige, aber nicht alle Profile E-Mails senden können, liegt möglicherweise ein Problem mit den von den betroffenen Profilen verwendeten Konten für Datenbank-E-Mails vor. Führen Sie die folgende Anweisung aus, um festzustellen, welche Konten erfolgreich E-Mails senden können:
SELECT sent_account_id, sent_date FROM msdb.dbo.sysmail_sentitems ;
Wenn ein nicht funktionierendes Profil keines der aufgeführten Konten verwendet, ist es möglich, dass alle dem Profil zur Verfügung stehenden Konten nicht einwandfrei arbeiten. Zum Überprüfen einzelner Konten erstellen Sie mit dem Assistenten zum Konfigurieren der Datenbank-E-Mail ein neues Profil mit nur einem Konto, und verwenden Sie dann das Dialogfeld Test-E-Mail senden, um mithilfe des neuen Kontos eine E-Mail zu senden.
Führen Sie die folgende Anweisung aus, um die Fehlermeldungen der Datenbank-E-Mail anzuzeigen:
SELECT * FROM msdb.dbo.sysmail_event_log ;
Hinweis: |
---|
Die Datenbank-E-Mail betrachtet eine E-Mail als versandt, wenn diese erfolgreich an einen SMTP-Mailserver übertragen wurde. Nachfolgende Fehler, wie eine ungültige E-Mail-Empfängeradresse, können immer noch verhindern, dass die E-Mail zugestellt wird, sind jedoch im Datenbank-E-Mail-Protokoll nicht enthalten. |
Konfigurieren der Datenbank-E-Mail zur erneuten E-Mail-Übermittlung
Wenn Sie festgestellt haben, dass die Datenbank-E-Mail nicht einwandfrei arbeitet, weil der SMTP-Server nicht zuverlässig erreicht werden kann, können Sie die Rate der erfolgreich übermittelten E-Mails erhöhen. Erhöhen Sie dazu die Anzahl der Versuche der Datenbank-E-Mail beim Senden jeder Nachricht. Starten Sie den Assistenten zum Konfigurieren der Datenbank-E-Mail, und aktivieren Sie die Option Systemparameter anzeigen oder ändern. Sie können dem Profil wahlweise auch mehrere Konten zuordnen, sodass die Datenbank-E-Mail im Falle eines Failovers vom ersten Konto das Failoverkonto zum Senden von E-Mails verwendet.
Auf der Seite Systemparameter konfigurieren bedeuten die Standardwerte von 5 Mal für Wiederholungsversuche und 60 Sekunden für Wiederholungsverzögerung für das Konto, dass die Nachrichtenübermittlung fehlschlägt, wenn der SMTP-Server nicht innerhalb von 5 Minuten erreicht werden kann. Erhöhen Sie diese Parameter, um die Zeitdauer bis zum Fehlschlagen der Nachrichtenübermittlung zu verlängern.
Hinweis: |
---|
Wenn eine große Anzahl Nachrichten gesendet wird, kann durch große Standardwerte die Zuverlässigkeit erhöht werden. Dadurch wird jedoch auch die Verwendung von Ressourcen deutlich erhöht, da die Übermittlung vieler Nachrichten immer wieder versucht wird. Beheben Sie das eigentliche Problem, indem Sie das Problem mit dem Netzwerk oder dem SMTP-Server beheben, das bzw. der verhindert, dass von der Datenbank-E-Mail sofort eine Verbindung mit dem SMTP-Server hergestellt wird. |
Sicherheit
Sie müssen Mitglied der festen Serverrolle sysadmin sein, um Probleme mit allen Aspekten der Datenbank-E-Mail zu behandeln. Benutzer, die nicht Mitglied der festen Serverrolle sysadmin sind, können nur Informationen zu den E-Mails abrufen, die sie selbst gesendet haben, nicht jedoch zu E-Mails, die von anderen gesendet wurden.
Siehe auch
Aufgaben
Problembehandlung bei Datenbank-E-Mail
Konzepte
Datenbank-E-Mail
Architektur der Datenbank-E-Mail
Andere Ressourcen
Gespeicherte Prozeduren für Datenbank-E-Mail und SQL Mail (Transact-SQL)
Datenbank-E-Mail-Sichten (Transact-SQL)
Assistent zum Konfigurieren von Datenbank-E-Mail