Profili di Posta elettronica database

Un profilo di Posta elettronica database è un insieme ordinato di account di Posta elettronica database correlati. Per inviare un messaggio di posta elettronica è necessario essere membri di DatabaseMailUserRole nel database msdb e avere accesso ad almeno un profilo di Posta elettronica database. Tramite i profili gli amministratori di database possono riconfigurare stored procedure e applicazioni di database che utilizzano la posta elettronica senza modificare il codice dell'applicazione. Ad esempio, è possibile configurare un profilo con un set di account di posta elettronica durante lo sviluppo e il test dell'applicazione e quindi aggiornarlo con un diverso set di account quando l'applicazione viene spostata all'ambiente di produzione. L'applicazione utilizza lo stesso nome di profilo, ma invia i messaggi di posta elettronica utilizzando un elenco diverso di server di posta elettronica.

[!NOTA]

Poiché Posta elettronica database non utilizza MAPI (Messaging Application Programming Interface) i profili di Posta elettronica database non sono profili MAPI. Posta elettronica database non utilizza i profili SQL Mail.

I profili migliorano l'affidabilità nei casi in cui un server di posta elettronica diventa irraggiungibile o non in grado di elaborare i messaggi. Ogni account del profilo è caratterizzato da un numero di sequenza. Il numero di sequenza determina l'ordine in cui Posta elettronica database utilizza gli account nel profilo. Per un nuovo messaggio di posta elettronica, Posta elettronica database utilizza l'ultimo account che ha inviato un messaggio di posta elettronica con esito positivo, o l'account che presenta il numero di sequenza più basso nel caso non siano stati ancora inviati messaggi. Se l'invio del messaggio con tale account ha esito negativo, Posta elettronica database prova con l'account con il numero di sequenza successivo e così via, finché il messaggio non viene inviato o finché anche l'invio con l'account con il numero di sequenza più alto non ha esito negativo. Se l'invio con l'account con il numero di sequenza più alto ha esito negativo, il tentativo di inviare il messaggio viene sospeso per il periodo di tempo specificato nel parametro AccountRetryDelay di sysmail_configure_sp. Trascorso questo periodo di tempo, Posta elettronica database prova di nuovo a inviare il messaggio, iniziando con l'account con il numero di sequenza più basso. Utilizzare il parametro AccountRetryAttempts di sysmail_configure_sp per specificare quante volte il processo di posta elettronica esterno deve tentare di inviare il messaggio di posta elettronica utilizzando ogni account indicato del profilo specificato.

Se esistono più account con lo stesso numero di sequenza, Posta elettronica database utilizza solo uno di questi account per un messaggio di posta specifico. In questo caso non è possibile sapere quale degli account corrispondenti al numero di sequenza verrà utilizzato, né sapere se per i vari messaggi verrà utilizzato lo stesso account.

I profili consentono inoltre di controllare l'accesso alla posta elettronica. L'appartenenza a DatabaseMailUserRole è necessaria per l'invio in Posta elettronica database. I profili consentono un'ulteriore flessibilità agli amministratori nel controllo di chi invia i messaggi e di quali account vengono utilizzati. Per ogni profilo privato, Posta elettronica database mantiene un elenco degli utenti autorizzati all'invio di posta elettronica mediante quel profilo. I profili pubblici sono disponibili agli utenti o ai ruoli nel database msdb che siano anche membri di DatabaseMailUserRole.

Per impostazione predefinita un profilo è privato e nessun utente è autorizzato ad accedervi. Per rendere pubblico il profilo, concedere l'accesso all'utente "public" o all'ID utente 0. Per ulteriori informazioni sulla concessione dell'accesso ai profili, vedere sysmail_add_principalprofile_sp (Transact-SQL)

Un profilo può essere predefinito. In questo caso, gli utenti possono inviare posta elettronica utilizzando il profilo senza specificarlo esplicitamente. Se l'utente che invia il messaggio di posta elettronica dispone di un profilo privato predefinito, Posta elettronica database utilizzerà tale profilo. Se all'utente non è associato un profilo privato predefinito, per sp_send_dbmail verrà utilizzato il profilo pubblico predefinito per il database. Se non è disponibile un profilo privato predefinito per l'utente oppure un profilo pubblico predefinito per il database, sp_send_dbmail restituisce un errore. In tutti i casi, è necessario che un utente sia membro di DatabaseMailUserRole per l'invio in Posta elettronica database.