O SQL Server disponibiliza um mecanismo para enviar e-mail da edição 2005 em diante (substituindo SQL Mail), este recurso é muito útil para notificar sobre o estado da instancia do SQL Server. Porem não recomendo utilizar com um volume muito grande de envios (para fazer e-mail marketing, por exemplo).
Para utilizar este recurso, devemos verificar o status de alguns itens:

Verificando status
Primeiro devemos verificar se o SQL Agent, está rodando. Para isso execute:

USE [master]
GO

EXEC xp_servicecontrol 'QueryState', 'SQLServerAGENT';

Acima executamos a procedure “xp_servicecontrol”, para verificar o estado do serviço “SQLServerAGENT”.

Verificando status do serviço SQL Server Agent
Como podemos ver claramente acima, o serviço “SQLServerAGENT” está parado, nesse caso vamos abrir o “Prompt de comando” do windows como administrador e executar: net start “SQL Server Agent (MSSQLSERVER)”.
Para mais informação de como iniciar o serviço do SQL Agent via linha de comando consulte:
http://technet.microsoft.com/pt-br/library/ms175192(v=sql.105).aspx

Ou iniciar via interface:

http://technet.microsoft.com/pt-br/library/ms191454(v=sql.105).aspx.

O segundo item que devemos verificar é o recurso: “Service Broker”. O mecanismo de envio depende do recurso de enfileiramento de mensagens, ou seja, precisamos verificar se o “Service Broker” está ativo para o banco “msdb”. Para verificar devemos executar:

SELECT is_broker_enabled
FROM sys.databases
WHERE database_id = DB_ID('msdb');

Acima temos um “select” para verificar o valor da coluna “is_broker_enabled”. Caso o valor seja “1”, é porque está ativo, caso seja “0”, não está. Supondo que o recurso não esteja ativo execute o seguinte comando para habilitar:

ALTER DATABASE msdb SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;

Acima temos um comando para habilitar o “Service Broker” para o banco “msdb”. Para desabilitar troque “ENABLE_BROKER” por “DISABLE_BROKER”.

Em seguida, devemos habilitar o envio de e-mail no SQL Server, para isso execute o seguinte comando:

USE [master]
GO
EXEC sp_configure 'show advanced options', 1;
GO

RECONFIGURE;
GO

EXEC sp_configure 'Database Mail XPs', 1;
GO

RECONFIGURE;
GO

Acima estamos habilitando o envio de e-mail no SQL Server.

Configurando o envio
Primeiro vamos ver como criar as configurações via interface, de depois vamos ver via T-SQL.
A primeira coisa que devemos fazer é configurar o “Database Mail”, para isso devemos expandir “Gerenciamento” e abrir “Configure Database Mail”.

Como habilitar o envio de e-mail no sql server

A primeira janela que irá aparecer será esta, clique em “Avançar”:

Primeiro passo para configurar o database mail do sql server

Na segunda tela deixe selecionado a opção “Instalar Database Mail executando as seguintes tarefas” e clique em avançar:

Segundo passo para configurar o database mail do sql server

Dê um nome para o perfil e uma descrição para o mesmo, e clique em “Adicionar”:

Terceiro passo para configurar o database mail do sql server

Assim que você clicar em “Adicionar”, uma tela irá abrir, para que você configure os dados de acesso ao servidor de e-mail, neste exemplo vou configurar o servidor do gmail:

Quarto passo para configurar o database mail do sql server

Dê “OK”, e clique em “Avançar” na tela anterior.
Na próxima janela podemos definir que o perfil criado é um perfil padrão, nesse caso quem utilizar o perfil, não precisará especificar o nome para utiliza-lo.

Quinto passo para configurar o database mail do sql server

Clique em “Avançar”. Na próxima tela definimos alguns parâmetros, como:
* Quantidade de tentativas de envio de e-mail.
* Quantidade em segundos entre uma tentativa e outra, para envio de e-mail
* Tamanho máximo de arquivo anexo.
* Quais extensões são permitidas (separado por vírgula)
* Quantidade de em segundos que o mecanismo de envio permanecerá ativo com a fila vazia
* Nível de detalhamento do log de e-mail (mais abaixo mostro como visualizar os logs)

Clique em “Avançar” e finalmente em “Concluir”. Se tudo deu certo você deve ver esta tela:

Concluindo configuração do database mail do sql server

Testando o envio
Para testar o envio de e-mail, devemos expandir “Gerenciamento” e abrir “Enviar Email de Teste”.

Enviar e-mail de teste no sql server

Na tela que abriu, você deve informar o e-mail de destino e clicar em “Enviar Email de Teste”, outra tela irá abrir, confirmando que a mensagem foi enfileirada.

Enviar e-mail de teste no sql server.

Enviando e-mail via TSQL
Para enviar um e-mail via T-SQL devemos chamar a procedure “sp_send_dbmail” do banco “msdb”

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'PerfilPadrão',
@recipients = 'andrebtoe@gmail.com',
@subject = 'Título aqui',
@body = 'Conteúdo aqui',
@body_format = 'HTML';

Acima estamos estamos executando uma procedure para enviar o e-mai para “andrebtoe@gmail.com” utilizando o profiler “PerfilPadrão”. Por padrão o formato da mensagem é “TEXT”, mas podemos enviar o conteúdo da mensagem no formato HTML.

Visualizando os logs
Ver os logs é útil para descobrir uma falha de envio por exemplo. Podemos ver através da interface ou executando um simples “select”:

SELECT * FROM msdb.dbo.sysmail_event_log;

Logs do database mail do sql server
Acima temos os dados de logs do serviço de envio.

Também podemos visualizar os dados via interface, para isso devemos expandir “Gerenciamento” e abrir “Exeibir Log do Database Mail”:

Logs do database mail do sql server.

Na segunda e última parte desse post, vamos ver mais recursos do Database Mail.
https://andrebtoe.com/2014/12/24/como-enviar-e-mail-no-sql-server-parte-2/

Espero que seja útil!
Até a próxima pessoal!

Publicidade