Share via


Risoluzione dei problemi relativi a Posta elettronica database: passaggi generali

Per risolvere i problemi relativi a Posta elettronica database, è necessario controllare le aree generali seguenti del sistema di Posta elettronica database. Queste procedure vengono indicate in ordine logico, ma possono essere completate in qualsiasi sequenza.

Verifica dell'attivazione di Posta elettronica database

  1. Fare clic sul pulsante Start, su Tutti i programmi, su Microsoft SQL Server 2005, su Strumenti di configurazione e quindi su Configurazione superficie di attacco di SQL Server.

  2. Fare clic su Configurazione superficie di attacco per le funzionalità.

  3. In MSSQLSERVER espandere Motore di database e quindi fare clic su Posta elettronica database.

  4. Verificare che l'opzione Attiva stored procedure di Posta elettronica database sia selezionata e quindi fare clic su Applica.

  5. Chiudere lo strumento Configurazione superficie di attacco di SQL Server.

Verifica della corretta configurazione degli utenti per l'invio di messaggi di Posta elettronica database

  1. Per poter inviare messaggi di Posta elettronica database, gli utenti devono essere membri di DatabaseMailUserRole. I membri del ruolo predefinito del server sysadmin e del ruolo di msdbdb_owner appartengono automaticamente anche al ruolo DatabaseMailUserRole. Per elencare tutti gli altri membri di DatabaseMailUserRole, eseguire l'istruzione seguente:

    EXEC msdb.sys.sp_helprolemember 'DatabaseMailUserRole' ;
    
  2. Per aggiungere utenti al ruolo DatabaseMailUserRole, utilizzare l'istruzione seguente:

    sp_addrolemember @rolename = 'DatabaseMailUserRole', 
       @membername = '<database user>'
    
  3. Per poter inviare messaggi di Posta elettronica database, gli utenti devono avere accesso ad almeno un profilo di Posta elettronica database. Per elencare gli utenti (entità) e i profili a cui hanno accesso, eseguire l'istruzione seguente.

    EXEC msdb.dbo.sysmail_help_principalprofile_sp ;
    
  4. Utilizzare la Configurazione guidata posta elettronica database per creare profili e consentire agli utenti di accedervi.

Verifica dell'avvio di Posta elettronica database

  1. Il programma esterno Posta elettronica database viene attivato quando sono presenti messaggi di posta elettronica da elaborare. Se entro il periodo di timeout specificato non è necessario inviare alcun messaggio, il programma viene chiuso. Per verificare che Posta elettronica database sia in esecuzione, eseguire l'istruzione seguente.

    EXEC msdb.dbo.sysmail_help_status_sp ;
    
  2. Se il programma esterno Posta elettronica database non è in esecuzione, eseguire l'istruzione seguente per avviarlo:

    EXEC msdb.dbo.sysmail_start_sp
    
  3. Se il programma esterno Posta elettronica database è in esecuzione, eseguire l'istruzione seguente per controllare lo stato della coda della posta:

    EXEC msdb.dbo.sysmail_help_queue_sp @queue_type = 'mail' ;
    

    Lo stato della coda della posta dovrebbe essere RECEIVES_OCCURRING. La coda dello stato può variare da un momento all'altro. Se lo stato della coda della posta non è RECEIVES_OCCURRING, provare a interrompere la coda utilizzando sysmail_stop_sp e quindi a riavviarla utilizzando sysmail_start_sp.

[!NOTA] Utilizzare la colonna length del set di risultati di sysmail_help_queue_sp per verificare il numero di messaggi di posta elettronica nella coda della posta.

Verifica dei problemi di Posta elettronica database che hanno effetto su tutti gli account di un profilo o solo su alcuni account

  1. Se si è appurato che solo alcuni profili possono inviare posta, è possibile che esistano problemi con gli account di Posta elettronica database utilizzati dai profili che non riescono a inviare messaggi. Per verificare quali account possono inviare posta, eseguire l'istruzione seguente:

    SELECT sent_account_id, sent_date FROM msdb.dbo.sysmail_sentitems ;
    
  2. Se un profilo che crea problemi non utilizza alcuno degli account elencati, è possibile che tutti gli account disponibili per tale profilo non funzionino correttamente. Per verificare i singoli account, utilizzare la Configurazione guidata posta elettronica database per creare un nuovo profilo con un singolo account e quindi provare a inviare un messaggio utilizzando il nuovo account dalla finestra di dialogo Invia messaggio di prova.

  3. Per visualizzare i messaggi di errore restituiti da Posta elettronica database, eseguire l'istruzione seguente:

    SELECT * FROM msdb.dbo.sysmail_event_log ;
    

[!NOTA] Posta elettronica database contrassegna i messaggi come inviati quando sono stati recapitati correttamente a un server di posta elettronica SMTP. Il recapito dei messaggi può essere impedito anche da successivi errori, ad esempio un indirizzo di posta elettronica errato per un destinatario, che tuttavia non vengono registrati nel log di Posta elettronica database.

Configurazione di Posta elettronica database per successivi tentativi di recapito della posta

  1. Se si è appurato che gli errori di Posta elettronica database sono dovuti a problemi di contatto del server SMTP, potrebbe essere possibile migliorare la frequenza di recapito aumentando il numero di tentativi eseguiti da Posta elettronica database per l'invio di ogni messaggio. Avviare la Configurazione guidata posta elettronica database e selezionare l'opzione Visualizza o modifica i parametri di sistema. In alternativa, è possibile associare più account al profilo in modo che in caso di errore di recapito con l'account principale sia possibile utilizzare l'account di failover per l'invio dei messaggi di posta elettronica.

  2. Nella pagina Configurazione parametri di sistema i valori predefiniti pari a 5 volte per Tentativi account e 60 secondi per Ritardo tentativi account indicano che il recapito dei messaggi avrà esito negativo se non è possibile contattare il server SMTP entro 5 minuti. Impostare un valore più alto per questi parametri se si desidera aumentare il periodo di tempo che deve trascorrere prima che il recapito dei messaggi abbia esito negativo.

[!NOTA] Se la quantità di messaggi inviata è notevole, l'impostazione di valori predefiniti elevati può consentire di aumentare l'affidabilità, ma comporta un aumento sostanziale dell'utilizzo delle risorse a causa dei ripetuti tentativi di invio per numerosi messaggi. Affrontare il problema alla radice risolvendo l'errore di rete o del server SMTP che impedisce a Posta elettronica database di contattare tempestivamente il server SMTP.

Protezione

È necessario essere membri del ruolo predefinito del server sysadmin per risolvere i problemi correlati a tutti gli aspetti di Posta elettronica database. Gli utenti che non sono membri del ruolo predefinito del server sysadmin possono ottenere informazioni solo sui messaggi di posta elettronica che tentano di inviare personalmente e non su quelli inviati da altri utenti.

Vedere anche

Attività

Risoluzione dei problemi relativi a Posta elettronica database

Concetti

Posta elettronica database
Architettura di Posta elettronica database

Altre risorse

Stored procedure di Posta elettronica database e SQL Mail (Transact-SQL)
Database Mail Views (Transact-SQL)
Configurazione guidata posta elettronica database

Guida in linea e informazioni

Assistenza su SQL Server 2005