Database Mail – Enviando email HTML

Olá pessoal, hoje daremos continuidade no assunto do Database Mail.

Neste artigo daremos exemplos e instruções de como enviar um email com formatação HTML, utilizando tabelas e resultado de selects para envio das informações.

Formatação HTML juntamente do resultado de queries SQL formam uma poderosa arma em favor do DBA, afim de disparar emails administrativos/gerenciais.

Lembrando que em caso de dúvida, problemas, suporte, consultoria acesse:  SRTech Soluções

O primeiro passo é realizar a configuração do Database Mail.

Com a ferramenta configurada com sucesso, o próximo passo é configurar o HTML e as queries SQL para formatação do body (corpo) do email, essa sim é a parte mais complexa e necessita de um certo conhecimento a nível HTML (pode-se utilizar ferramentas visuais para auxiliar na geração do código html).

Segue um exemplo básico de email HTML e query SQL.

image

Após ter o código formatado como desejado, basta executar o script e validar o email recebido na caixa de entrada.

image

Com o script aprovado, basta agendá-lo através de um JOB no SQL Server para disparar de acordo com o desejado.

Abaixo, segue script do email exemplo demonstrado acima:

–monta email
DECLARE @body nvarchar(MAX) = ”; –variavel que formata o corpo do email
SET @body = –definindo varial com o corpo do email
‘<table border=1 width=”100%”><tr><th colspan=”4″ bgcolor=”darkblue”>’
+ ‘<h3>Relatorio JOBS – Banco Dados CLiente TESTE </h3></th></tr>’ –titulo da tabela
+ ‘<tr bgcolor=”lightblue”><th>Nome do Job<th>Ultima Vez executou<th>Status do Job<th>Status da Ultima Execucao</tr>’ –colunas do email
+ CAST( (
SELECT distinct name AS [TD] –importante colocar ‘alias’ das colunas como ‘TD’ (informando pra ser coluna)
,convert(nvarchar(20),CONVERT(DATETIME,RTRIM(run_date),113),103) AS [TD]
,CASE WHEN enabled=1 THEN ‘Habilitada’
ELSE ‘Desabilitado’
END AS [TD]
,CASE    WHEN SJH.run_status=0 THEN  ‘Falho’
WHEN SJH.run_status=1 THEN  ‘Sucesso’
WHEN SJH.run_status=2 THEN  ‘Tentando’
WHEN SJH.run_status=3 THEN  ‘Cancelado’
ELSE  ‘Desconhecido’
END as [TD]
FROM   msdb..sysjobhistory SJH  JOIN   msdb..sysjobs SJ  ON     SJH.job_id=sj.job_id  WHERE  step_id=0
AND CONVERT(DATETIME,RTRIM(run_date),113) >= DATEADD(d,-1,GetDate())
and SJH.instance_id = (select MAX(b.instance_id) from msdb..sysjobhistory b where SJH.job_id=b.job_id) ORDER BY 1,2,3,4
FOR XML RAW(‘tr’), ELEMENTS –traduz linhas do select pra ser linhas da tabela
) AS NVARCHAR(MAX))
+ ‘<tr><td colspan=”4″ bgcolor=”darkblue” align=”right”>’
+ ‘Informacao extraida em: ‘ + CONVERT( nvarchar, GETDATE(), 113) + ‘</td></tr></table>’;

–envia email
EXEC msdb.dbo.sp_send_dbmail –procedure que envia os emails
@body = @body –corpo do email, passando variavel acima definida
, @recipients = ‘destinatario@email.com.br;’ –destinatario(s) do email
, @subject = ‘Relatorio Jobs’ — assunto do email
, @profile_name = ‘NomedoProfileCriado’ –nome do profile que ira disparar o email
, @body_format = ‘HTML’; –importante informar o formato do email, nesse caso HTML
GO

 

Em breve, teremos mais post’s!!

Abraço,

Henrique Ribeiro

Anúncios

One Reply to “Database Mail – Enviando email HTML”

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s