Repostagem – Database Mail – Configuração Através de Scripts
DatabaseMail – Configuração através de scripts
Postei um tempo atrás um artigo sobre o DatabaseMail (aqui), mas era através dos menus de configuração. Hoje trago para vocês a realização da mesma tarefa, só que através de scripts.
Configurando o DatabaseMail
-- Cria uma account do Database Mail EXECUTE msdb.dbo.sysmail_add_account_sp @account_name = 'SQL', @description = 'Conta de email para o envio do email na rotina de log de erro.', -- Uma descrição para a sua account @email_address = 'sql@zavaschi.com', -- Email que será -- mostrado como o emissor @replyto_address = 'sql@zavaschi.com', -- Email de reply @display_name = 'SQL Server', -- Nome mostrado no email enviado @mailserver_name = 'smtp.zavaschi.com', -- Servidor smtp @port = 25, -- Porta @username = 'sql', -- Login do servidor de smtp @password = 'sql'; -- senha do servidor de smtp -- Cria um profile do Database Mail EXECUTE msdb.dbo.sysmail_add_profile_sp @profile_name = 'SQL Profile', @description = 'Profile usado para o envio do email na rotina de log de erro.' ; -- Cria o profile -- Adiciona a account ao profile EXECUTE msdb.dbo.sysmail_add_profileaccount_sp @profile_name = 'SQL Profile', @account_name = 'SQL', @sequence_number =1 ; -- Associa a account ao profile, recém criados. -- Garante acesso ao profile a todos os usuarios da base msdb EXECUTE msdb.dbo.sysmail_add_principalprofile_sp @profile_name = 'SQL Profile', @principal_name = 'public', @is_default = 1; -- Configura o profile criado como público e padrão.
Pronto, só isso. E agora para enviar email é da mesma maneira:
EXEC msdb.dbo.sp_send_dbmail @profile_name='SQL Profile', @recipients='sql@zavaschi.com', @subject='Titulo', @body='Corpo da mensagem.'
Tranquilo né? Mas se ao executar a procedure de envio de email você obter o seguinte erro:
Msg 15281, Level 16, State 1, Procedure sp_send_dbmail, Line 0
SQL Server blocked access to procedure 'dbo.sp_send_dbmail' of component 'Database Mail XPs' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Database Mail XPs' by using sp_configure. For more information about enabling 'Database Mail XPs', see "Surface Area Configuration" in SQL Server Books Online.
É pelo fato do DatabaseMail estar desabilitado no seu SQL Server, então rode o seguinte script:
sp_configure 'Database Mail XPs', 1 GO RECONFIGURE
Há alguns casos que não é possível executar o RECONFIGURE diretamente (sem entrar nos méritos)
Executar então: RECONFIGURE WITH OVERRIDE
Espero que seja útil para você, acredito que sim, pois muitos me pedem!
Grande abraço!
Thiago Zavaschi