
La gestione delle notifiche email è uno di quegli aspetti dell’amministrazione SQL Server che spesso viene trascurata finché non si ha bisogno davvero di sapere in tempo reale che un job è fallito, che un backup non è andato a buon fine o che un alert di monitoraggio si è attivato nel cuore della notte.
In ambienti enterprise, dove l’affidabilità dei processi schedulati è critica, avere un sistema di notifiche email configurato correttamente fa la differenza tra scoprire un problema all’alba di lunedì mattina e ricevere un avviso alle 2:00 di notte, quando si può ancora intervenire in tempo.
In questo articolo vedremo come configurare Database Mail su SQL Server Enterprise e come collegarlo all’SQL Server Agent per abilitare le notifiche automatiche tramite SMTP.
Partiremo dalla configurazione del profilo mail, analizzeremo le opzioni di sicurezza e autenticazione supportate incluso l’uso di account moderni come Microsoft 365 con autenticazione SMTP AUTH fino ad arrivare alla creazione degli operatori e all’associazione delle notifiche ai job agent.
Una configurazione completa, testata in produzione su SQL Server 2022 e 2025.
PREREQUISITI
Accesso a SSMS con privilegi sysadmin
Credenziali del server SMTP (host, porta, utente, password)
Service Broker abilitato su msdb (verificato automaticamente dalla procedura guidata)
STEP 1 — ABILITARE DATABASE MAIL XPS
Database Mail è disabilitato per default. Prima di tutto va abilitato tramite sp_configure con i seguenti comandi:
|
0 1 2 3 4 5 6 7 |
sqlUSE master; GO EXEC sp_configure 'show advanced options', 1; RECONFIGURE; GO EXEC sp_configure 'Database Mail XPs', 1; RECONFIGURE; GO |
Se è andato tutto a buon fine dovremmo visualizzare una schermata come quella sovrastante
STEP 2 — AVVIARE LA PROCEDURA GUIDATA DA SSMS
A questo punto avviare la procedura tramite SSMS
In Object Explorer espandere il nodo Management e fare clic con il tasto destro su Database Mail e selezionare Configure Database Mail
Si aprirà il wizard. Cliccare Next
Alla prima schermata selezionare Set up Database Mail by performing the following tasks e cliccare Next
STEP 3 — CREARE UN PROFILO
Nella schermata New Profile inserire un nome per il profilo (es. SQLMailProfile) e una descrizione.
NOTA BENE: Il profilo è il contenitore che raccoglie uno o più account SMTP.
Cliccare Add… per aggiungere un account SMTP.
STEP 4 — CONFIGURARE L’ACCOUNT SMTP
Nella finestra New Database Mail Account compila i campi:
Account name: Nome univoco dell’account SMTP
Description: semplice descrizione
Email Address: Mittente delle email
Display Name: Nome visualizzato
Reply e-mail (opzionale): indirizzo reply-to
Server name: FQDN o IP del server SMTP
Port number: Porta SMTP — tipicamente 25 o 587, oppure 465 per SSL Microsoft
This Server requires a secure connection (SSl): Abilita se richiesto dal server
Nella Sezione autenticazione ci sono tre opzioni:
- Windows Authentication (NTLM, solo per Exchange on-premises)
- Basic Authentication (username e password espliciti)
- Anonymous (nessuna credenziale, solo se il server SMTP lo consente)
Per Office 365 / SMTP esterno scegli Basic Authentication e inserisci username e password.
Cliccare OK per confermare la configurazione
Cliccare Next
STEP 5 — GESTIRE LA SICUREZZA DEL PROFILO
Nella schermata Manage Profile Security spuntare la casella Public e impostare il profilo come Default Profile = Yes
Questo permette a qualsiasi utente con accesso a msdb di inviare email senza specificare un profilo esplicitamente.
STEP 6 — PARAMETRI DI SISTEMA (OPZIONALI)
Lasciare i valori di default. Il Logging Level è impostato su Extended di default, che registra errori, warning e messaggi informativi.
Cliccare Next
Cliccare Finish
Cliccare Close per chiudere il wizard
STEP 7 — INVIO DI UNA MAIL DI TEST
Da SSMS cliccare di destro su Database Mail → Send Test E-Mail…
Selezionare il profilo, inserire un destinatario e cliccare Send Test E-Mail
Se riceviamo la mail cliccare OK per confermare che tutto funzioni
In alternaitva è possibile fare il test dell’email tramite script T-SQL:
|
0 1 2 3 4 |
sqlEXEC msdb.dbo.sp_send_dbmail @profile_name = 'SQLMailProfile', @subject = 'Test Database Mail', @body = 'Configurazione SMTP completata con successo!'; |
CONFIGURAZIONE DEL SERVER SMTP TRAMITE SCRIPT T-SQL
In alternativa al wizard è possibile configurare tutto via T-SQL se si preferisce configurare tutto via script (utile per automazione o documentazione):
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
sql-- 1. Abilita Database Mail EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'Database Mail XPs', 1; RECONFIGURE; -- 2. Crea il profilo EXEC msdb.dbo.sysmail_add_profile_sp @profile_name = 'SQLMailProfile', @description = 'Profilo SMTP per SQL Server'; -- 3. Crea l'account SMTP EXEC msdb.dbo.sysmail_add_account_sp @account_name = 'SMTPAccount', @display_name = 'SQL Server Alerts', @mailserver_name = 'smtp.office365.com', @port = 587, @enable_ssl = 1, @password = 'TUA_PASSWORD'; -- 4. Associa account al profilo EXEC msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'SQLMailProfile', @account_name = 'SMTPAccount', @sequence_number = 1; -- 5. Rendi il profilo pubblico e default EXEC msdb.dbo.sysmail_add_principalprofile_sp @profile_name = 'SQLMailProfile', @principal_name = 'public', @is_default = 1; Verifica e troubleshooting sql-- Controlla la coda dei messaggi inviati SELECT * FROM msdb.dbo.sysmail_sentitems ORDER BY sent_date DESC; -- Controlla eventuali errori SELECT * FROM msdb.dbo.sysmail_event_log ORDER BY log_date DESC; -- Verifica configurazione profili e account EXEC msdb.dbo.sysmail_help_profile_sp; EXEC msdb.dbo.sysmail_help_account_sp; |
A questo punto dovremmo essere in grado di inviare le mail con il nostro SQL Server…

0 commenti