Freigeben über


sysmail_unsentitems (Transact-SQL)

Gilt für: SQL Server Azure SQL Managed Instance

Enthält eine Zeile für jede Datenbank-E-Mail Nachricht mit dem Status "Nicht senden" oder "Wiederholen". Nachrichten mit dem Status unsent oder retrying werden in der E-Mail-Warteschlange aufbewahrt und können jederzeit gesendet werden. Nachrichten können den Status "Nicht senden" aus den folgenden Gründen 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 den Wiederholungsstatus aus den folgenden Gründen haben:

  • 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 versuchen Sie dann erneut, die Nachricht zu senden. Datenbank-E-Mail verwendet die Der Parameter "Account Retry Attempt" ermittelt, wie oft versucht werden soll, die Nachricht zu senden. Nachrichten behalten den Wiederholungsstatus bei, 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.

Um alle von Datenbank-E-Mail verarbeiteten Nachrichten anzuzeigen, verwenden Sie sysmail_allitems (Transact-SQL). Verwenden Sie sysmail_faileditems (Transact-SQL), um nur Nachrichten mit dem Status "Fehlgeschlagen" 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.
query 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. Versucht erneut, wenn Datenbank-E-Mail die Nachricht nicht senden konnten, aber es 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.

Hinweise

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 haben, 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 jedoch zu viel Zeit in der Warteschlange verbringen, benötigt SQL Server möglicherweise mehr Ressourcen, um die Menge der benötigten Nachrichten zu verarbeiten.

Berechtigungen

Gewährt sysadmin fixed server role and DatabaseMailUserRole database role. Wenn sie von einem Mitglied der festen Serverrolle "sysadmin" ausgeführt wird, werden in dieser Ansicht alle nicht gesendeten oder wiederholten Nachrichten angezeigt. Alle anderen Benutzer sehen nur die nicht gesendeten oder wiederholten Nachrichten.