Condividi tramite


sysmail_unsentitems (Transact-SQL)

Si applica a: SQL Server Istanza gestita di SQL di Azure

Contiene una riga per ogni Posta elettronica database messaggio con lo stato di annullamento o ripetizione dei tentativi. I messaggi con uno di questi due stati si trovano ancora nella coda della posta e potrebbero essere inviati in qualsiasi momento. I messaggi possono avere lo stato non inviato per i motivi seguenti:

  • Il messaggio è nuovo e, anche se è stato inserito nella coda della posta, non è ancora stato elaborato da Posta elettronica database che sta inviando altri messaggi.

  • Il programma esterno Posta elettronica database non è in esecuzione e attualmente la posta non viene inviata.

I messaggi possono avere lo stato di ripetizione dei tentativi per i motivi seguenti:

  • Posta elettronica database ha tentato di inviare il messaggio, ma non è stato possibile contattare il server di posta elettronica SMTP. Posta elettronica database continuerà a tentare di inviare il messaggio utilizzando altri account di Posta elettronica database assegnati al profilo che ha inviato il messaggio. Se nessun account può inviare il messaggio di posta elettronica, Posta elettronica database attenderà il periodo di tempo configurato per il parametro Ritardo tentativi account e quindi tenterà di inviare nuovamente il messaggio. Posta elettronica database usa Parametro Tentativi account per determinare quante volte tentare di inviare il messaggio. I messaggi mantengono lo stato di ripetizione dei tentativi finché Posta elettronica database sta tentando di inviare il messaggio.

Utilizzare questa vista quando si desidera controllare il numero di messaggi in attesa di essere inviati e da quanto tempo sono presenti nella coda della posta. In genere il numero di messaggi non inviati sarà basso. Eseguire un test di benchmark durante il normale funzionamento per determinare il numero ragionevole di messaggi che può essere presente nella coda in condizioni di lavoro regolari.

Per visualizzare tutti i messaggi elaborati da Posta elettronica database, usare sysmail_allitems (Transact-SQL). Per visualizzare solo i messaggi con stato non riuscito, usare sysmail_faileditems (Transact-SQL). Per visualizzare solo i messaggi inviati, usare sysmail_sentitems (Transact-SQL).

Nome colonna Tipo di dati Descrizione
mailitem_id int Identificatore dell'elemento di posta nella coda della posta.
profile_id int Identificatore del profilo utilizzato per l'invio del messaggio.
Destinatari varchar(max) Indirizzi di posta elettronica dei destinatari del messaggio.
copy_recipients varchar(max) Indirizzi di posta elettronica degli utenti che ricevono una copia del messaggio.
blind_copy_recipients varchar(max) Indirizzi di posta elettronica degli utenti che ricevono una copia del messaggio, ma i cui nomi non sono indicati nell'intestazione del messaggio.
subject nvarchar(510) Oggetto del messaggio.
body varchar(max) Il corpo del messaggio.
body_format varchar(20) Formato del corpo del messaggio. I valori possibili sono TEXT e HTML.
importance varchar(6) Parametro di importanza del messaggio.
sensibilità varchar(12) Parametro di riservatezza del messaggio.
file_attachments varchar(max) Elenco delimitato da punti e virgola dei nomi dei file allegati al messaggio di posta elettronica.
attachment_encoding varchar(20) Tipo di allegato del messaggio di posta elettronica.
query varchar(max) Query eseguita dal programma di posta elettronica.
execute_query_database sysname Contesto di database all'interno del quale il programma di posta elettronica ha eseguito la query.
attach_query_result_as_file bit Quando il valore è 0, i risultati della query sono inclusi nel corpo del messaggio di posta elettronica, dopo il contenuto del corpo. Quando il valore è 1, i risultati sono restituiti come file allegato.
query_result_header bit Quando il valore è 1, i risultati della query includono le intestazioni di colonna. Quando il valore è 0, i risultati della query non includono le intestazioni di colonna.
query_result_width int Parametro query_result_width del messaggio.
query_result_separator char(1) Carattere utilizzato per separare le colonne nell'output della query.
exclude_query_output bit Parametro exclude_query_output del messaggio. Per altre informazioni, vedere sp_send_dbmail (Transact-SQL).
append_query_error bit Parametro append_query_error del messaggio. 0 indica che Posta elettronica database non deve inviare il messaggio di posta elettronica se la query contiene un errore.
send_request_date datetime Data e ora di inserimento del messaggio nella coda della posta.
send_request_user sysname Utente che ha inviato il messaggio. Si tratta del contesto utente della routine di posta elettronica del database, non del campo Da del messaggio.
sent_account_id int Identificatore dell'account di Posta elettronica database utilizzato per l'invio del messaggio. Per questa vista è sempre NULL.
sent_status varchar(8) Non verrà inviato se Posta elettronica database non ha tentato di inviare il messaggio di posta elettronica. Riprova se Posta elettronica database non è riuscito a inviare il messaggio ma riprova.
sent_date datetime Data e ora dell'ultimo tentativo di invio del messaggio. Se Posta elettronica database non ha tentato di inviare il messaggio, il valore di questo parametro è NULL.
last_mod_date datetime Data e ora dell'ultima modifica della riga.
last_mod_user sysname Autore dell'ultima modifica della riga.

Osservazioni:

Quando si risolvono i problemi relativi a Posta elettronica database, questa vista può consentire di identificare la natura del problema in quanto indica il numero di messaggi in attesa di essere inviati e il tempo di attesa nella coda. Se nessun messaggio viene inviato, è possibile che il programma esterno Posta elettronica database non sia in esecuzione oppure che esista un problema di rete che impedisce a Posta elettronica database di contattare i server SMTP. Se molti dei messaggi non inviati hanno lo stesso profile_id, potrebbe verificarsi un problema con il server SMTP. Considerare l'opportunità di aggiungere altri account al profilo. Se i messaggi vengono inviati, ma i messaggi trascorrono troppo tempo nella coda, SQL Server potrebbe richiedere più risorse per elaborare il volume dei messaggi necessari.

Autorizzazioni

Concesso al ruolo predefinito del server sysadmin e al ruolo del database DatabaseMailUserRole. Quando viene eseguito da un membro del ruolo predefinito del server sysadmin , questa visualizzazione mostra tutti i messaggi non inviati o nuovi tentativi . Tutti gli altri utenti visualizzano solo i messaggi non inviati o nuovi tentativi inviati.