Thiago Zavaschi R2 www.zavaschi.com

1Jun/090

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

Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


No trackbacks yet.