sysmail_unsentitems (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed Instance

Enthält eine Zeile für jede Datenbank-E-Mail Nachricht mit der nicht gesendeten oder wiederholten status. Nachrichten mit dem Status unsent oder retrying werden in der E-Mail-Warteschlange aufbewahrt und können jederzeit gesendet werden. Nachrichten können aus den folgenden Gründen die nicht gesendete status haben:

  • Eine neue Nachricht wurde erstellt, und obwohl sich die Nachricht in der E-Mail-Warteschlange befindet, bearbeitet die Datenbank-E-Mail zunächst andere Nachrichten und hat diese Nachricht noch nicht erreicht.

  • Das externe Datenbank-E-Mail-Programm wird nicht ausgeführt, und es werden keine E-Mails gesendet.

Nachrichten können die status aus den folgenden Gründen wiederholen:

  • Die Datenbank-E-Mail hat versucht, die E-Mail zu senden, aber der SMTP-Mailserver war nicht erreichbar. Die Datenbank-E-Mail versucht weiterhin, die Nachricht zu senden, wobei sie andere Datenbank-E-Mail-Konten verwendet, die dem Profil, von dem aus die Nachricht gesendet wurde, zugeordnet sind. Wenn keine Konten die E-Mail senden können, wartet Datenbank-E-Mail auf die für den Parameter "Account Retry Delay" konfigurierte Zeit und versucht dann erneut, die Nachricht zu senden. Datenbank-E-Mail verwendet den Parameter Account Retry Attempts, um zu bestimmen, wie oft versucht werden soll, die Nachricht zu senden. Nachrichten wiederholen status, solange Datenbank-E-Mail versucht, die Nachricht zu senden.

Verwenden Sie diese Sicht, um anzuzeigen, wie viele Nachrichten darauf warten, gesendet zu werden, und seit wann diese sich in der E-Mail-Warteschlange befinden. Normalerweise ist die Anzahl der nicht gesendeten Nachrichten niedrig. Führen Sie unter normalen Betriebsbedingungen einen Vergleichstest durch, um eine für Ihre Betriebsabläufe angemessene Anzahl von Nachrichten in der Nachrichtenwarteschlange zu ermitteln.

Verwenden Sie sysmail_allitems (Transact-SQL), um alle von Datenbank-E-Mail verarbeiteten Nachrichten anzuzeigen. Verwenden Sie sysmail_faileditems (Transact-SQL), um nur Nachrichten mit fehlerhaften status anzuzeigen. Verwenden Sie sysmail_sentitems (Transact-SQL), um nur gesendete Nachrichten anzuzeigen.

Spaltenname Datentyp BESCHREIBUNG
mailitem_id int Der Bezeichner des E-Mail-Elements in der E-Mail-Warteschlange.
profile_id int Der Bezeichner des Profils, das zum Übermitteln der Nachricht verwendet wurde.
Empfänger varchar(max) Die E-Mail-Adressen der Nachrichtenempfänger.
copy_recipients varchar(max) Die E-Mail-Adressen derer, die Kopien der Nachricht erhalten.
blind_copy_recipients varchar(max) Die E-Mail-Adressen derer, die Kopien der Nachricht erhalten, deren Namen jedoch nicht im Nachrichtenkopf angezeigt werden.
subject nvarchar(510) Die Betreffzeile der Nachricht.
body varchar(max) Der Textkörper der Nachricht.
body_format varchar(20) Das Textkörperformat der Nachricht. Die möglichen Werte sind TEXT und HTML.
importance varchar(6) Der Wichtigkeitsparameter der Nachricht.
Empfindlichkeit varchar(12) Der Vertraulichkeitsparameter der Nachricht.
file_attachments varchar(max) Eine durch Semikolons getrennte Liste der Dateinamen, die an die E-Mail-Nachricht angehängt wurden.
attachment_encoding varchar(20) Der Typ der E-Mail-Anlage.
Frage varchar(max) Die Abfrage, die vom E-Mail-Programm ausgeführt wurde.
execute_query_database sysname Der Datenbankkontext, in dem das E-Mail-Programm die Abfrage ausgeführt hat.
attach_query_result_as_file bit Bei einem Wert von 0 wurden die Abfrageergebnisse hinter dem Inhalt des Textkörpers in den Textkörper der E-Mail-Nachricht eingeschlossen. Bei einem Wert von 1 wurden die Ergebnisse als Anlage zurückgegeben.
query_result_header bit Bei einem Wert von 1 enthielten die Abfrageergebnisse Spaltenheader. Bei einem Wert von 0 enthielten die Abfrageergebnisse keine Spaltenheader.
query_result_width int Der query_result_width-Parameter der Nachricht.
query_result_separator char(1) Das Zeichen, das zum Trennen der Spalten in der Abfrageausgabe verwendet wird.
exclude_query_output bit Der exclude_query_output-Parameter der Nachricht. Weitere Informationen finden Sie unter sp_send_dbmail (Transact-SQL).
append_query_error bit Der append_query_error-Parameter der Nachricht. 0 zeigt an, dass die Datenbank-E-Mail die Nachricht nicht senden soll, wenn die Abfrage einen Fehler enthält.
send_request_date datetime Das Datum und die Uhrzeit, an dem bzw. zu der die Nachricht in der E-Mail-Warteschlange platziert wurde.
send_request_user sysname Der Benutzer, der die Nachricht übermittelt hat. Dies ist der Benutzerkontext der Datenbank-E-Mail-Prozedur, nicht das Feld Von der Nachricht.
sent_account_id int Der Bezeichner des Datenbank-E-Mail-Kontos, das zum Senden der Nachricht verwendet wird. Für diese Sicht immer NULL.
sent_status varchar(8) Wird nicht gesendet, wenn Datenbank-E-Mail nicht versucht hat, die E-Mail zu senden. Wird erneut ausgeführt, wenn Datenbank-E-Mail die Nachricht nicht senden konnte, es aber erneut versucht.
sent_date datetime Das Datum und die Uhrzeit, an dem bzw. zu der die Datenbank-E-Mail zuletzt versucht hat, die E-Mail zu senden. Hat die Datenbank-E-Mail nicht versucht, die Nachricht zu senden, lautet der Wert NULL.
last_mod_date datetime Das Datum und die Uhrzeit der letzten Änderung der Zeile.
last_mod_user sysname Der Benutzer, der die Zeile zuletzt geändert hat.

Bemerkungen

Wenn Sie Probleme mit der Datenbank-E-Mail behandeln, kann diese Sicht Ihnen helfen, die Ursache des Problems zu identifizieren, da sie anzeigt, wie viele Nachrichten darauf warten, gesendet zu werden, und seit wann diese Nachrichten warten. Werden keine Nachrichten gesendet, wird das externe Datenbank-E-Mail-Programm möglicherweise nicht ausgeführt, oder die Datenbank-E-Mail kann aufgrund eines Netzwerkproblems die SMTP-Server nicht erreichen. Wenn viele der nicht gesendeten Nachrichten dieselbe profile_id aufweisen, liegt möglicherweise ein Problem mit dem SMTP-Server vor. Sie sollten eventuell dem Profil zusätzliche Konten hinzufügen. Wenn Nachrichten gesendet werden, Nachrichten aber zu viel Zeit in der Warteschlange verbringen, benötigen SQL Server möglicherweise mehr Ressourcen, um die menge der von Ihnen benötigten Nachrichten zu verarbeiten.

Berechtigungen

Wird der festen Serverrolle sysadmin und der Datenbankrolle DatabaseMailUserRole gewährt. Wenn sie von einem Mitglied der festen Serverrolle sysadmin ausgeführt wird, zeigt diese Ansicht alle nicht gesendeten oder wiederholenden Nachrichten an. Allen anderen Benutzern werden nur die nicht gesendeten oder wiederholten Nachrichten angezeigt.