Sql Server è un prodotto estremamente potente che contiene molte funzionalità spesso sconosciute. Una di queste è l’invio di una email attraverso una serie di stored procedure.
Creazione di un profilo
EXEC msdb.dbo.sysmail_add_profile_sp @profile_name = 'Nome Profilo', @description = 'Descrizione del profilo'
Impostazione di un account SMTP Server
EXEC msdb.dbo.sysmail_add_account_sp @account_name = 'Nome Account', @email_address = 'FromEmailAddress@dummy.it', @display_name = 'Nome visualizzato', @replyto_address = 'ReplyToEmailAddress@dummy.it', @description = 'Descrizione account', @mailserver_name = 'SmtpServeAddress', @mailserver_type = 'SMTP', @use_default_credentials = 0
Aggiunta dell’account al profilo
EXEC msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'Nome Profilo', @account_name = 'Nome Account', @sequence_number = 1
Impostiamo l’accesso a DatabaseMailUserRole per il profilo creato
EXEC msdb.dbo.sysmail_add_principalprofile_sp @profile_name = 'Nome Profilo', @principal_id = 0, @is_default = 1
Invio di una email di prova
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Nome Profilo', @recipients = 'ToEmailAddress@dummy.it', @body = 'Invio di una email da SQL Server', @subject = 'Oggetto di una email da SQL Server'
Per la verifica dello stato di un invio dei una email basta accedere alle viste msdb.dbo.sysmail_allitems
, msdb.dbo.sysmail_mailitems
, msdb.dbo.sysmail_faileditems
. Altre tabelle/viste che possono essere interessanti
msdb.dbo.sysmail_server
msdb.dbo.sysmail_account
msdb.dbo.sysmail_profile
msdb.dbo.sysmail_log
msdb.dbo.sysmail_configuration