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