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.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für