Share via


sysmail_unsentitems (Transact-SQL)

Enthält eine Zeile für jede Datenbank-E-Mail-Nachricht mit dem Status unsent oder retrying. 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 unsent aus folgenden Gründen aufweisen:

  • 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 Status retrying aus folgenden Gründen aufweisen:

  • 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. Kann die E-Mail von keinem Konto aus gesendet werden, wartet die Datenbank-E-Mail die mit Wiederholungsverzögerung für das Konto als Parameter angegebene Zeit ab und versucht dann erneut, die Nachricht zu senden. Die Datenbank-E-Mail verwendet den mit Wiederholungsversuche für das Konto angegebenen Parameter, um die Anzahl der Sendungsversuche zu bestimmen. Nachrichten weisen den Status retrying so lange auf, wie die 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 Nachrichten mit dem Status unsent gering. 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 der Datenbank-E-Mail verarbeiteten Nachrichten anzuzeigen. Verwenden Sie sysmail_faileditems (Transact-SQL), um nur Nachrichten mit dem Status failed 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.

recipients

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. Mögliche Werte sind TEXT und HTML.

importance

varchar(6)

Der importance-Parameter der Nachricht.

sensitivity

varchar(12)

Der sensitivity-Parameter 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. Hierbei handelt es sich um den Benutzerkontext der Datenbank-E-Mail-Prozedur, nicht um das Von-Feld 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)

Der Status lautet unsent, wenn die Datenbank-E-Mail nicht versucht hat, die E-Mail zu senden. Wenn die Datenbank-E-Mail die Nachricht nicht senden konnte, es jedoch erneut versucht, lautet der Status retrying.

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. Weisen viele der ungesendeten Nachrichten dieselbe profile_id auf, deutet dies auf ein Problem mit dem SMTP-Server hin. Sie sollten eventuell dem Profil zusätzliche Konten hinzufügen. Wenn Nachrichten zwar gesendet werden, sich jedoch zu lange in der Warteschlange befinden, benötigt SQL Server möglicherweise zusätzliche Ressourcen, um das Nachrichtenvolumen zu bewältigen.

Berechtigungen

Werden der festen Serverrolle sysadmin und der Datenbankrolle DatabaseMailUserRole gewährt. Diese Sicht zeigt alle Nachrichten mit dem Status unsent oder retrying an, wenn sie von einem Mitglied der festen Serverrolle sysadmin ausgeführt wird. Für alle anderen Benutzer werden nur die von ihnen übermittelten Nachrichten mit dem Status unsent oder retryingangezeigt.