programmatore-siena-querying_data_with_transact-sql

Inviare una email con Sql Server

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