Configurare Server Mail in SQL Server

Configurare Server Mail in SQL Server 2016

Un Server Mail in Sql Server viene utilizzato per inviare messaggi di posta elettronica dal motore di database di SQL Server all’utente.

Perchè viene utilizzato? Usato per inviare output di query, store procedure ma anche risultati di backup creati con successo o piani di manutenzione eseguiti senza errori.

Vediamo come configurare un Server Mail in Sql Server.

Requisiti

Per configurare un Database Mail è necessario avere:

Configurare Server mail in SQL Server

In breve, la configurazione del Server Mail in Sql Server include il Configurazione dell’account SMTP, l’account e-mail configurato verrà utilizzato per inviare e-mail. Inoltre, l’opzione più semplice per creare il profilo di posta del database utilizzando la GUI di SSMS

Passaggi per la configurazione Database Mail

  • Navigare l’Esplora oggetti e selezionare Managment. Fare clic con il pulsante destro del mouse su Database Mail.
  • Selezionare Configure Database Mail
  • Dopo aver fatto clic su Configura posta database , viene visualizzata una finestra Configurazione guidata posta database, quindi fare clic sul pulsante Avanti.
  • Durante la configurazione di Posta database per la prima volta, selezionare la prima opzione Set up Database Mail by performing the following tasks e cliccare Avanti.
  • Dopo aver fatto clic sul pulsante Avanti, viene visualizzata una finestra Nuovo profilo. Ora è necessario impostare un profilo e un account di Posta database.
  • In Nome profilo e descrizione : Specificare il nome del profilo e della descrizione di Posta database. La descrizione è facoltativa. Dopo aver fornito il nome e la descrizione del profilo, fare clic sul pulsante Aggiungi  presente sulla stessa maschera per impostare l’account e collegarlo al profilo.
Configurare Server Mail in SQL Server - Nuovo Profilo
Configurare Server Mail in SQL Server – Nuovo Profilo
  • Dopo aver fatto clic sul pulsante Aggiungi, viene visualizzata una finestra Aggiungi account al profilo e quindi fare clic sul pulsante Nuovo account.
Configurare Server Mail in SQL Server - Aggiungi Account
Configurare Server Mail in SQL Server – Aggiungi Account
  • Dopo aver fatto clic sul pulsante Nuovo account, si apre una finestra in cui è necessario specificare i dettagli per il nuovo account che verrà collegato al profilo.
Configurare Server Mail in SQL Server - Database Account Mail
Configurare Server Mail in SQL Server – Database Account Mail
  • In Nome account e descrizione : Specificare il nome per la descrizione dell’account e dell’account, la descrizione dell’account è facoltativa.
  • In Server posta in uscita (SMTP): configurare i dettagli del server di posta in uscita come segue, illustrato anche nella schermata seguente.
  • Una volta fatto clic nel pulsante OK, verranno visualizzato i dettagli dell’account creati nella sezione account SMTP compilata automaticamente. Quindi fare clic sul pulsante Avanti
  • Dopo aver fatto clic sul pulsante Avanti, viene visualizzata una finestra che chiede di selezionare un profilo pubblico o un profilo privato.
  • Impostiamo profilo pubblico
  • Dopo aver fatto clic sul pulsante Avanti, fare clic sul pulsante Fine per completare il passaggio finale.

Invio test mail SQL Server

Sempre Esplora oggetti, fare clic su Managment > Fare clic con il pulsante destro del mouse su Database Mail > Fare clic su Invia messaggio di posta elettronica di prova.

Una volta cliccato su Invia e-mail di prova, si aprirà una maschera dove inserire le seguenti opzioni:

  • Profilo posta database: Selezionare il profilo di posta del database dall’elenco a discesa che si desidera utilizzare per l’invio di posta elettronica, o che è stato appena creato.

Se si dispone di più profili, è possibile scegliere quello che si desidera utilizzare per l’invio di posta elettronica.

  • A: Fornire l’ID di posta a cui si desidera inviare un messaggio di posta elettronica, a scopo di test è possibile fornire l’ID di posta.
  • Oggetto: Fornire l’oggetto della posta elettronica.
  • Corpo: Specificare il messaggio di posta elettronica che verrà visualizzato nel corpo della posta elettronica.

Infine clicca sul pulsante Invia e-mail di prova. Una volta fatto clic sul pulsante Invia e-mail di prova, otterrai una notifica via e-mail sull’account di posta che hai fornito.

Utilizzo Server Mail in SQL Server 2016 mediante SP

Vediamo come utilizzare la store procedure sp_send_dbmail per inviare notifiche mail.

Invia e-mail semplice a singolo destinatario

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Test Email Send'
,@recipients   = '[email protected]'
,@subject      = 'Regarding Sales Team Meeting'
,@body         = 'Hi There, Decision has been made. Regards, Vish';

Invia e-mail a più destinatari

In questo esempio, stiamo inviando email a più account email. Il parametro @recipients accetta un elenco delimitato da semi-colonna di account e-mail.

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Test Email Send'
,@recipients   = '[email protected];[email protected]'
,@subject      = 'Regarding Sales Team Meeting'
,@body         = 'Hi There, Decision has been made. Regards, Vish';

Invia e-mail con un allegato

Usando @file_attachments parametro per passare il percorso assoluto del file allegato. È possibile specificare più allegati come elenco delimitato da punti e virgola.

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Test Email Send'
,@recipients   = '[email protected];[email protected]'
,@subject      = 'Regarding Sales Team Meeting'
,@body         = 'Hi There, Decision has been made. Regards, Vish'
,@file_attachments = 'D:PolicyDetailsPolicyWordings.pdf';

Invia e-mail con risultato della query come allegato

Nel seguente esempio, usando @attach_query_result_as_file per inviare il risultato della query come allegato. Il parametro @attach_query_result_as_file accetta 1 o 0 come input.

Se @attach_query_result_as_file = 0, il risultato della query verrà aggiunto al corpo dell’email. Nel caso in cui @attach_query_result_as_file = 1, il risultato della query verrà inviato come allegato.

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Test Email Send'
,@recipients   = '[email protected];[email protected]'
,@subject      = 'Regarding Policy Count - Yesterday'
,@body         = 'Refer Policy Count '
,@query        = 'SELECT COUNT(*) Policy
                      WHERE CreatedDate >= DATEADD(day,DATEDIFF(day,1,GETDATE()),0)
                            AND CreatedDate < DATEADD(day,DATEDIFF(day,0,GETDATE()),0)'
,@attach_query_result_as_file = 1;

Invia e-mail HTML in SQL Server

Nel seguente esempio, utilizzare HTML per formattare il messaggio e-mail. Utilizzo di una variabile @HTML_Body per impostare prima il corpo in formato HTML utilizzando i tag. @body_format = “HTML” comando SQL Server per analizzare questa e-mail e inviarlo in formato HTML.

DECLARE @HTML_Body as NVARCHAR(500) = 'Hi There, <h4> Heading </h4> </br> Refer report. <b> Regards </b>';
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Test Email Send'
,@recipients   = '[email protected];[email protected]'
,@subject      = 'Regarding Policy Count - Yesterday'
,@body         =  @HTML_Body
,@body_format  = 'HTML';

Risoluzione dei problemi relativi al Database Mail

Se dopo aver configurato il database mail sono presenti problemi di invio mail è necessario rivedere il registro del Database Mail in modo da analizzare eventuali errori presenti.

Esplora oggetti > fare clic sulla cartella Managment> quindi fare clic con il pulsante destro del mouse su Database Mail > quindi scegliere Visualizza registro posta database.

Oppure è anche possibile eseguire al di sotto del codice T-SQL:

SELECT * FROM msdb.dbo.sysmail_event_log;

E’ necessario controllare anche se è abilitato il Database Mail. Nella configurazione indicata viene attivato di default ma nel caso contrario occorre verificare. Lancia la query:

sp_configure 'show advanced', 1; 
GO
RECONFIGURE;
GO
sp_configure;
GO

Conclusione

In questo articolo, abbiamo visto come configurare Server Mail in SQL Server, l’utilizzo delle store procedure memorizzate dal sistema per inviare e-mail a destinatari singoli e multipli, con il risultato della query come allegato insieme alle e-mail HTML.

Autore Bartolomeo

Consulente tecnico con la passione per il web e la tecnologia e tutto quello che le ronza intorno.
Nel tempo libero scrivo articoli per il mio blog su argomenti vari, in particolare su configurazione Windows, Linux e WordPress.

Condividi questo articolo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Ho letto la policy privacy e accetto il trattamento dei miei dati personali in conformità al D.Lgs. 196/2003