Posta elettronica database

Si applica a:SQL ServerIstanza gestita di SQL di Azure

Posta elettronica database è una soluzione aziendale per l'invio di messaggi di posta elettronica dal motore di database di SQL Server o dall'istanza gestita di database SQL di Azure. Le applicazioni possono inviare messaggi di posta elettronica agli utenti usando Posta elettronica database tramite un server SMTP esterno. I messaggi possono includere risultati di query e file provenienti da qualunque risorsa disponibile in rete.

Nota

Posta elettronica database è disponibile nel motore di database di SQL Server e in Istanza gestita di SQL di Azure, ma non nel database SQL di Azure e nei pool elastici. Per altre informazioni sull'uso di Posta elettronica database in Istanza gestita di SQL di Azure, vedere Automatizzare le attività di gestione usando i processi di SQL Agent in Istanza gestita di SQL di Azure.

Vantaggi dell'utilizzo della Posta elettronica database

Posta elettronica database è caratterizzata da affidabilità, scalabilità, sicurezza e facilità di supporto.

Affidabilità

  • Posta elettronica database utilizza il protocollo SMTP (Simple Mail Transfer Protocol) standard per l'invio della posta. È possibile utilizzare Posta elettronica database senza installare un client MAPI estesa nel computer che esegue SQL Server.

  • Isolamento dei processi. Per ridurre al minimo l'impatto su SQL Server, il componente che fornisce la posta elettronica viene eseguito esternamente a SQL Server, in un processo separato. SQL Server continuerà a mettere in coda i messaggi di posta elettronica anche se il processo esterno si arresta o non va a buon fine. I messaggi in coda verranno inviati non appena il processo esterno o il server SMTP sarà online.

  • Account di failover Un profilo di Posta elettronica database consente di specificare più di un server SMTP. Nel caso in cui un server SMTP non sia disponibile, sarà comunque possibile recapitare la posta a un altro server SMTP.

  • Supporto dei cluster. Posta elettronica database è compatibile con i cluster ed è pienamente supportato in un cluster.

Scalabilità

  • Recapito in background: La Posta elettronica di Database consente il recapito in background o in modalità asincrona. Quando si utilizza sp_send_dbmail per inviare un messaggio, Posta elettronica database aggiunge una richiesta a una coda di Service Broker. La stored procedure restituisce immediatamente un risultato. Il componente esterno di posta elettronica riceve la richiesta e recapita i messaggi.

  • Più profili: Posta elettronica database consente di creare più profili in un'istanza di SQL Server. Facoltativamente, è possibile scegliere il profilo utilizzato da Posta elettronica database quando viene inviato un messaggio.

  • Più account: ogni profilo può contenere diversi account di failover. È possibile configurare profili diversi con account diversi, per distribuire la posta elettronica su più server di posta.

  • Compatibilità a 64 bit: Posta elettronica database è pienamente supportata nelle installazioni a 64 bit di SQL Server.

Sicurezza

  • Disabilitazione per impostazione predefinita: per ridurre la superficie di attacco di SQL Server, le stored procedure di Posta elettronica database sono disabilitate.

    • Per configurare Posta elettronica database, è necessario essere un membro del ruolo predefinito del server amministratore di sistema.
  • Sicurezza posta: per inviare Posta elettronica database, è necessario essere membri del ruolo del database DatabaseMailUserRole nel msdb database.

  • Sicurezza del profilo: Mail del database impone la sicurezza sui profili di posta. È possibile scegliere gli utenti o i gruppi del database msdb autorizzati ad accedere a un profilo di Posta elettronica database. È possibile concedere l'accesso a utenti specifici o a tutti gli utenti in msdb. Un profilo privato consente di limitare l'accesso a un elenco specificato di utenti. Un profilo pubblico risulta disponibile per tutti gli utenti di un database.

  • Dimensione massima dell'allegato: Posta elettronica database impone un limite configurabile sulla dimensione dei file allegati. È possibile modificare tale limite usando la stored procedure sysmail_configure_sp.

  • Estensioni di file non consentite: Posta elettronica database mantiene un elenco di estensioni di file non consentite. Gli utenti non possono allegare file con un'estensione visualizzata nell'elenco. È possibile modificare questo elenco utilizzando sysmail_configure_sp.

  • Posta elettronica database viene eseguito su l'account di servizio del motore di SQL Server. Per allegare un file da una cartella a un'e-mail, l'account del motore di SQL Server deve disporre delle autorizzazioni necessarie per accedere alla cartella in cui è contenuto il file.

Supportabilità

  • Configurazione integrata: Posta elettronica di Database mantiene le informazioni sugli account email nel motore di database SQL Server. Non è necessario gestire un profilo di posta elettronica in un'applicazione client esterna. Nella Configurazione guidata di Posta elettronica database è disponibile un'interfaccia di facile utilizzo per configurare Posta elettronica database. È inoltre possibile creare e mantenere configurazioni di Posta elettronica database tramite Transact-SQL.

  • Registrazione (Wiki Microsoft/ApplicationInsights-aspnetcore: registrazione). Posta elettronica database registra l'attività di posta elettronica in SQL Server, nel registro eventi delle applicazioni di Windows e nelle tabelle del database msdb.

  • Verifica: Posta elettronica database mantiene copie dei messaggi e degli allegati inviati nel database msdb. È possibile controllare con facilità l'utilizzo di Posta elettronica database ed esaminare i messaggi conservati.

  • Supporto per HTML: Posta elettronica database consente di inviare messaggi di posta elettronica in formato HTML.

Architettura di Posta elettronica database

Posta elettronica database è basato su un'architettura a code che impiega tecnologie di service broker. Quando gli utenti eseguono sp_send_dbmail, la stored procedure inserisce un elemento nella coda della posta elettronica e crea un record contenente il messaggio di posta elettronica. L'inserimento della nuova voce nella coda della posta elettronica avvia il processo esterno di Posta elettronica database (DatabaseMail.exe). Il processo esterno legge le informazioni relative alla posta elettronica e invia il messaggio al server o ai server di posta elettronica appropriati. Il processo esterno inserisce un elemento nella coda di stato per il risultato dell'operazione di invio. L'inserimento della nuova voce nella coda di stato avvia una "stored procedure" interna che aggiorna lo stato del messaggio di posta elettronica. Oltre a conservare i messaggi di posta elettronica inviati o non inviati, Posta elettronica database registra anche eventuali allegati nelle tabelle di sistema. Le visualizzazioni di Posta elettronica database forniscono lo stato dei messaggi per la risoluzione dei problemi, e le stored procedure consentono l'amministrazione della coda di Posta elettronica database.

Diagramma del modo in cui il database di sistema msdb invia messaggi a un server di posta SMTP.

Introduzione ai componenti di Posta elettronica database

Il programma Posta elettronica database è costituito dai componenti principali seguenti:

  • Componenti di configurazione e di sicurezza

    Posta elettronica database archivia le informazioni di configurazione e di sicurezza nel database msdb. Gli oggetti di configurazione e di sicurezza creano profili e account utilizzati da Posta elettronica database.

  • Componenti di messaggistica

    Il database msdb funge da database host della mail contenente gli oggetti di messaggistica che Posta elettronica database utilizza per inviare i messaggi. Questi oggetti includono la stored procedure sp_send_dbmail e le strutture dei dati contenenti le informazioni relative ai messaggi.

  • Eseguibile di Posta elettronica database

    L'eseguibile di Posta elettronica database è un programma esterno, che legge da una coda nel database msdb e invia i messaggi ai server di posta elettronica.

  • Componenti di registrazione e controllo

    Mail del database registra le informazioni di log nel database msdb e nel registro eventi delle applicazioni di Windows.

Configurare SQL Agent per l'uso di Mail del Database

SQL Server Agent può essere configurato per l'utilizzo di Posta elettronica database. Ciò è necessario per le notifiche degli avvisi e per la notifica automatica del completamento di un processo.

Avviso

I singoli passaggi all'interno di un processo possono inoltre inviare posta elettronica senza configurare SQL Server Agent per l'utilizzo di Posta elettronica database. Ad esempio, un passaggio del processo Transact-SQL può utilizzare Posta elettronica database per inviare i risultati di una query a un elenco di destinatari.

È possibile configurare SQL Server Agent per inviare messaggi di posta elettronica a operatori predefiniti nelle condizioni riportate di seguito:

  • È stato attivato un avviso. È possibile configurare gli avvisi in modo da inviare notifiche tramite posta elettronica quando vengono generati eventi specifici, Ad esempio, gli avvisi possono essere configurati per notificare a un operatore di un determinato evento di database o condizione del sistema operativo che potrebbe richiedere un'azione immediata. Per altre informazioni sulla configurazione degli avvisi, vedere Avvisi.

  • Quando un'attività pianificata, ad esempio il backup di un database o un evento di replica, viene completata o non riesce. È possibile ad esempio utilizzare SQL Server Agent Mail per notificare agli operatori il verificarsi di un errore durante l'elaborazione alla fine del mese.

Per iniziare a configurare SQL Agent per l'uso di Posta elettronica database, vedere Configurare la posta elettronica di SQL Server Agent per l'uso di Posta elettronica database.

Posta elettronica del database con gruppi di disponibilità contenuti

Per usare Posta elettronica del database con gruppi di disponibilità contenuti, è necessario connettersi all'istanza e abilitare gli XPs di Posta elettronica del database (opzione di configurazione del server) usando la stored procedure di sistema sp_configure. Questo passaggio deve essere completato in tutte le repliche nel gruppo di disponibilità contenuto.

  • Se si tenta di abilitare l'opzione per la posta elettronica del database quando si è connessi al listener del gruppo di disponibilità contenuta, verrà visualizzato l'errore previsto: sp_configure

Dopo aver abilitato l'opzione Posta elettronica database XPs in tutte le repliche, connettersi al listener del gruppo di disponibilità indipendente per continuare con la configurazione della posta elettronica del database, come descritto in Selezionare l'attività di configurazione. In questo modo, gli oggetti di posta elettronica del database saranno presenti all'interno del gruppo di disponibilità indipendente e rimarranno sincronizzati.

Supporto TDS 8.0

SQL Server 2025 (17.x) ha introdotto il supporto TDS 8.0 per Posta elettronica database. Il protocollo TDS 8.0 fornisce sicurezza e crittografia avanzata per i dati trasmessi tra SQL Server e le applicazioni client. In questo modo, Posta elettronica database può funzionare in ambienti in cui vengono applicati la crittografia TLS 1.3 e TDS 8.0.

Troubleshoot

Per la risoluzione dei problemi di Posta elettronica database, visita:

Passo successivo