quarta-feira, 12 de fevereiro de 2020

Configurar DataBaseMail via Script


Fala galera, voltando hoje para demonstrar como configurar o DatabaseMail do SQL Server totalmente via script.

No script abaixo, siga os passos descristos e você terá o seu DatabaseMail configurado em poucos minutos:

-- Passo 1 -- Validar se o serviço está Ativo
 EXECUTE msdb.dbo.sysmail_help_status_sp
 -- Se estiver parado (STOPPED) rodar o script abaixo para iniciar o serviço

 EXEC msdb.dbo.sysmail_start_sp;

 -- Valida o status para ver se o retorno é (STARTED )

-- Passo 2 -- Criar uma conta ( Account )
 /*
  Nesse passo ( Criar uma conta ) que é definido as configurações de envio do email como:
  Servidor de e-mail e-mail de envio: @mailserver_name
  Porta de Comunicação ( Padrão do Servidor de e-mai ): @port
  habilitar SSL (criptografia durante o envio de dados): @enable_ssl
  Descrição da Conta: @description
  Nome da conta dentro do SQL: @account_name
  Nome que aparecerá como remetente do e-mail: @display_name
  E-mail de envio: @email_address
  Usuario do e-mail: @username
  Senha do e-mail: @password

 */
 -- Adicionar conta de e-mail
 execute msdb.dbo.sysmail_add_account_sp
  -- Dados fíxos
  @mailserver_name = 'smtp.gmail.com', -- endereço do servidor de envio de e-mails
  @port = 587, -- porta de comunicação
  @enable_ssl = 1, -- habilitar SSL (criptografia durante o envio de dados)
  -- Dados da sua conta
  @description = 'Teste de Envio de e-mail',
  @account_name = 'Conta Teste', -- nome da conta dentro do SQL
  @display_name = 'E-mail enviado pela Conta Teste',   -- Nome que aparecerá como remetente do e-mail
  @email_address = 'conta_teste@seudominio.com',
  @username = 'conta_teste@seudominio.com',
  @password = 'SuaSenha'

-- Passo 3 -- Criar um Profile de e-mail

 execute msdb.dbo.sysmail_add_profile_sp
  @profile_name = 'Profile Teste',
  @description = 'Profile para Teste de e-mail'

-- Passo 4 -- Vincular a Conta ao Profile
 /*
  Nesse passo vinculamos a conta com o profile

 */
 execute msdb.dbo.sysmail_add_profileaccount_sp
  @profile_name = 'Nome do Profile que cricou no Passo 3',
  @account_name = 'Nome da Conta que cricou no Passo 2',
  @sequence_number = 1


-- Passo 5 -- Enviar um e-mail de Teste

 execute msdb.dbo.sp_send_dbmail 
  @profile_name = 'Profile Teste', -- Nome do Profile definido no Passo 3
  @recipients = 'lfernandolsilva@gmail.com', -- Destinatário do e-mail
  @subject = 'Assunto - Teste Database Mail',
  @body = 'Teste nova conta de e-mail'



-- Passo 6 -- Consulta o stado das filas de envio:
-- A consulta abaixo, retorna o status dos ultimos 1000 emails enviado

 SELECT TOP 1000
  P.name   AS "Profile de Envio",
  C.name   AS "Conta de Envio",
  a.send_request_date AS DataEnvio,
  a.sent_date AS DataEntrega,
  (CASE
   WHEN a.sent_status = 0 THEN '0 - Aguardando envio'
   WHEN a.sent_status = 1 THEN '1 - Enviado'
   WHEN a.sent_status = 2 THEN '2 - Falhou'
   WHEN a.sent_status = 3 THEN '3 - Tentando novamente'
  END) AS Situacao,
  a.from_address AS Remetente,
  A.recipients AS Destinatario,
  a.subject AS Assunto,
  a.reply_to AS ResponderPara,
  a.body AS Mensagem,
  a.body_format AS Formato,
  a.importance AS Importancia,
  a.file_attachments AS Anexos,
  a.send_request_user AS Usuario,
  B.description AS Erro,
  B.log_date AS DataFalha
 FROM  msdb.dbo.sysmail_mailitems   A WITH(NOLOCK)
  JOIN msdb.dbo.sysmail_profile   P WITH(NOLOCK) ON A.PROFILE_ID = P.PROFILE_ID
  JOIN msdb.dbo.sysmail_account   C WITH(NOLOCK) ON A.sent_account_id = c.account_id
  LEFT JOIN msdb.dbo.sysmail_event_log B WITH(NOLOCK) ON A.mailitem_id = B.mailitem_id
 ORDER BY send_request_date DESC

Nenhum comentário:

Postar um comentário

Migrando Blog https://luizflsilva.wordpress.com/

Curtindo cada vez mais a criar conteudo que possa levar aprendizado a amantes e profissionais da area de banco de dados, estou migrando o bl...