Share via


Risoluzione dei problemi relativi a Posta elettronica database: Posta elettronica accodata, ma non recapitata

Data aggiornamento: 17 luglio 2006

In questo argomento vengono descritte le procedure di risoluzione dei problemi relativi al mancato recapito di messaggi di posta elettronica inseriti senza errori in una coda.

Diagnosi del problema

Il programma esterno Posta elettronica database registra le attività di posta elettronica nel database msdb.

Utilizzare innanzitutto l'utilità Configurazione superficie di attacco di SQL Server per verificare che Posta elettronica database sia attivato.

Quindi eseguire l'istruzione seguente nel database msdb per verificare lo stato della coda della posta elettronica:

sysmail_help_queue_sp @queue_type = 'Mail' ;

Per una descrizione dettagliata delle colonne, vedere la sezione relativa al set di risultati in sysmail_help_queue_sp (Transact-SQL).

Verificare l'attività della vista sysmail_event_log. La vista dovrebbe contenere una voce che specifica che il programma esterno Posta elettronica database è stato avviato. Se la vista sysmail_event_log non contiene voci, vedere il sintomo Messages Queued, No Entries in sysmail_event_log. Se la vista sysmail_event_log contiene errori, risolvere il problema specifico.

Se la vista sysmail_event_log contiene errori, verificare lo stato dei messaggi nella vista sysmail_allitems.

Stato del messaggio non inviato

Lo stato non inviato indica che il programma esterno Posta elettronica database non ha ancora elaborato il messaggio. È possibile che il programma sia in ritardo con l'elaborazione dei messaggi. La velocità di elaborazione dipende dalle condizioni della rete, dal timeout fra i tentativi di invio, dal volume dei messaggi e dalla capacità del server SMTP. Se il problema persiste, è consigliabile utilizzare più di un profilo per la distribuzione di messaggi fra più server SMTP.

Controllare la data dell'ultimo recapito senza errori. Se è trascorso del tempo dall'ultimo recapito senza errori, controllare la vista sysmail_event_log per verificare che il programma esterno sia stato avviato in modo corretto da Service Broker. Se durante l'ultimo tentativo il programma esterno non è stato avviato, verificare che il programma esterno Posta elettronica database si trovi nella directory corretta e che l'account del servizio SQL Server disponga dell'autorizzazione per l'avvio dell'eseguibile.

[!NOTA] Per eliminare i messaggi precedenti non inviati, attendere fino a quando i messaggi non recapitabili non diventano i meno recenti nella coda e quindi utilizzare sysmail_delete_mailitems_sp per eliminarli.

Stato del messaggio nuovo tentativo in corso

Questo stato indica che Posta elettronica database ha tentato di recapitare il messaggio al server SMTP, ma l'operazione non è riuscita. In genere, questo problema è causato da un'interruzione di rete, un errore sul server SMTP o un account di Posta elettronica database configurato in modo non corretto. Alla fine il messaggio dovrebbe riuscire o non riuscire e pubblicare un messaggio nel log eventi.

Stato del messaggio inviato

Lo stato inviato indica che il programma esterno Posta elettronica database ha recapitato correttamente il messaggio al server SMTP. Se il messaggio non è giunto a destinazione, il server SMTP ha accettato il messaggio da Posta elettronica database, ma non lo ha recapitato al destinatario finale. Verificare i log del server SMTP, oppure rivolgersi all'amministratore del server SMTP. È inoltre possibile eseguire un test del server di posta elettronica SMTP utilizzando un altro client, ad esempio Outlook Express.

Stato del messaggio non riuscito

Lo stato non riuscito indica che il programma esterno Posta elettronica database non è stato in grado di recapitare il messaggio al server SMTP. In questo caso, la vista sysmail_event_log contiene informazioni dettagliate provenienti dal programma esterno. Per una query di esempio che unisce sysmail_faileditems e sysmail_event_log allo scopo di recuperare messaggi di errore dettagliati, vedere Procedura: Controllo dello stato di messaggi di posta elettronica inviati con Posta elettronica database (Transact-SQL). Le cause di errore più frequenti sono la presenza di un indirizzo di destinazione errato oppure problemi di rete che impediscono al programma esterno di raggiungere uno o più account di failover. È inoltre possibile che la posta venga respinta per problemi specifici a livello del server SMTP. Utilizzando Configurazione guidata posta elettronica database, modificare l'impostazione dell'opzione Livello di registrazione su Dettagliato e inviare un messaggio di prova per individuare il punto di errore.

Vedere anche

Attività

Risoluzione dei problemi relativi a Posta elettronica database
Risoluzione dei problemi relativi a Posta elettronica database: passaggi generali

Concetti

Architettura di Posta elettronica database
Posta elettronica database

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

17 luglio 2006

Nuovo contenuto:
  • Aggiunta di una nota sull'eliminazione dei messaggi non inviati tramite la stored procedure sysmail_delete_mailitems_sp.