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.