Como configurar e enviar emails usando o Database Mail no SQL Server 2005
Problema do aluno: Trabalho com SQL Server e preciso enviar e-mails. Como faço?
Solução: Na verdade, temos três soluções possíveis para isso:
- Database Mail - envia e-mails através de uma conta SMTP (é um recurso do SQL Server 2005);
- SQL Mail - envia e-mails através de uma conta do Exchange (funciona no SQL Server 2005 e no SQL Server 2000);
- CDONTS.DLL ou CDO.SYS - envia e-mails usando uma conta SMTP (independe de SQL Server).
Nesse primeiro post, vou mostrar como configurar e enviar e-mails usando o Database Mail do SQL Server 2005.
Abra o SQL Server Management Studio e, no Object Explorer (se ele não estiver visível, aperte a tecla [F8]), dê um clique com o botão direito do mouse sobre o item [Database Mail]. No menu de contexto, clique em [Configure Database Mail]:
Uma tela de boas vindas é apresentada. Clique em [Next]:
Selecione a primeira das opções apresentadas por essa tela. Ela cria um profile (perfil de conta) para ser usado no envio de e-mails:
Dê um nome para o profile e uma descrição (opcional) para o mesmo. Clique em [Add]:
Preencha, na tela seguinte, os campos, conforme a figura abaixo e clique em [OK]:
Veja que a lista SMTP accounts agora tem um item. Clique em [Next]:
Marque o checkbox [Public] para o profile:
Nessa mesma tela, selecione a opção [Yes] em [Default profile]. Clique em [Next]:
Veja se as opções (como tamanho máximo do e-mail) atende às suas necessidades e clique em [Next]:
Na tela final, clique em [Finish]:
O SQL Server cria o profile, segundo suas especificações. Clique em [Close]:
Voltando ao Object Explorer do Management Studio, clique com o botão direito (novamente) sobre o item [Database Mail] escolhendo a opção Send Test E-Mail:
Digite um e-mail válido em [To] e clique em [Send Test E-Mail]:
Você deverá receber um e-mail semelhante a:
Agora, abra uma nova query e execute o comando abaixo:
EXEC MSDB..SP_SEND_DBMAIL
@RECIPIENTS = ‘agnaldo@50minutos.com.br’, –DESTINATÁRIO DO E-MAIL
@SUBJECT = ‘ASSUNTO’, –ASSUNTO DO E-MAIL
@BODY = ‘TESTE DE ENVIO DE E-MAIL’ –CORPO DO E-MAIL
O seguinte erro pode ser apresentado:
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.
Se esse erro ocorrer, você deve abrir o aplicativo SQL Server Surface Area Configuration (está no menu [Configuration Tools]) e clicar em [Surface Area Configuration For Features]:
Na tela que será apresentada, você deve marcar o checkbox [Enable Database Mail Stored Procedures]:
Executando o comando de envio de e-mail novamente, ele funcionará sem problema e você receberá um e-mail como: