Sei in: Home : Competenze : SQL : Microsoft SQL : Errore che impedisce l'invio via e-mail di notifiche

Errore che impedisce l'invio via e-mail di notifiche

Quando cerchiamo di inviare una notifica via email tipo

EXECUTE msdb.dbo.sp_notify_operator @name=N'Ferdinando Caprilli',@subject=N'SQLSERVER - OK processo di shrink dei database',@body=N'Il processo di shrink dei database andato a buon fine.'

otteniamo l'errore:

Msg 14636, Level 16, State 1, Procedure sp_send_dbmail, Line 112
No global profile is configured. Specify a profile name in the @profile_name parameter.

occorre controlla re se c'è un profilo per l'invio di e-mail con :

select * from [msdb].[dbo].[sysmail_principalprofile]

se c'è è sufficente eleggerlo a profilo di default con :

update [msdb].[dbo].[sysmail_principalprofile]
set is_default = 1
where profile_id =
(select max(profile_id)
from [msdb].[dbo].[sysmail_profile]
where [name] = 'def_profile')

Altrimenti occorre crearlo:

-- Create a Database Mail account
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'Account per notifiche',
@description = 'Account per notifiche',
@email_address = 'EMAILDACUIVOGLIAMORICEVERELAMAIL',
@replyto_address = 'EMAILDACUIVOGLIAMORICEVERELAMAIL',
@display_name = 'EMAILDACUIVOGLIAMORICEVERELAMAIL',
@mailserver_name = 'SERVERDIPOSTASMTP' ;
-- Create a Database Mail profile
EXECUTE msdb.dbo.sysmail_add_profile_sp
@profile_name = 'Profilo per notifiche',
@description = 'Profilo per notifiche' ;
-- Add the account to the profile
EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
@profile_name = 'Profilo per notifiche',
@account_name = 'Account per notifiche',
@sequence_number =1 ;
-- Grant access to the profile to all users in the msdb database
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@profile_name = 'Profilo per notifiche',
@principal_name = 'public',
@is_default = 1 ;