Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


Expandir
titleConteúdo desta página

Índice
maxLevel3
indent25px
stylenone


A ativação desse recurso no SQL do servidor é um pré-requisito para o envio de e-mails no processo de assinatura eletrônica.

Antes de começar

Antes de ativar o recurso de envio de e-mail do SQL Server, deve-se observar os seguintes pré-requisitos:

  1. Determinar a conta no servidor SMTP para envio de e-mail.

  2. Conceder as permissões apropriadas para a conta de serviço do SQL Server.
    A conta de serviço do SQL Server deve ter permissão para acessar a rede, assim como os servidores SMTP devem permitir conexões do computador que executa o SQL Server.

  3. Determinar os requisitos de segurança.
    Para configurar o Database Mail, você deve ser membro da função de servidor fixa sysadmin.
    O Database Mail tem suporte a SSL, caso seja exigido pelo servidor SMTP. O Database Mail pode fazer uma conexão anônima com o servidor SMTP, caso o servidor aceite tais conexões ou possa fornecer credenciais para autenticação básica. Em conexões que utilizam a Autenticação do Windows, o Database Mail usa as credenciais do serviço do Windows para a autenticação do Mecanismo de banco de dados do SQL Server no servidor SMTP.

Ativar o serviço a partir do assistente

Para iniciar o Assistente de Configuração do Database Mail:

  1. No Pesquisador de Objetos, conecte-se a uma instância do SQL Server.
  2. Expanda Gerenciamento, clique com o botão direito do mouse em Database Mail e selecione Configurar Database Mail
  3. Marque a opção Instalar Database Mail para instalar o Database Mail pela primeira vez.
    Observação:
    Habilitar o SQL Server Service Broker em qualquer banco de dados exige um bloqueio de banco de dados. Se o Service Broker foi desabilitado no msdb, para habilitar o Database Mail, primeiro interrompa o SQL Server Agent para que o Service Broker obtenha o bloqueio necessário.
  4. Escolha uma das outras opções para tarefas de manutenção específicas:
    • Gerenciar contas e perfis do Database Mail.
    • Gerenciar segurança de perfil.
    • Exibir ou alterar parâmetros do sistema.

Observação:
Por padrão, a entrega de mensagens do Service Broker está ativa em um banco de dados quando este é criado.
Não é necessário conceder permissão ao usuário sobre o perfil, pois o Linx ERP já executa essa tarefa através do Cadastro de Usuários



Ativar o serviço a partir de comandos T-SQL

Para utilização do recurso de envio de e-mail do SQL Server, deve-se seguir os seguintes passos:

1. Habilitar o Service Broker
O Database Mail depende do Service Broker para enfileirar mensagens de e-mail, portanto o primeiro passo é habilitá-lo no banco de dados msdb.


Observação:
O Service Broker encontra-se habilitado por padrão no banco de dados msdb, mas pode ter sido desativado por qualquer motivo. Habilitar o Service Broker em qualquer banco de dados requer um bloqueio de banco de dados. Portanto para habilitar Database Mail no msdb, primeiro interrompa o SQL Server Agent, para que o Service Broker possa obter o bloqueio necessário.

2. Habilitar Database Mail XPs
O Database Mail depende de algumas procedures internas, as quais encontram-se desabilitadas em novas instalações.

É possível habilitar essas procedures usando a opção Database Mail XPs da procedure do sistema sp_configure.



3. Conta do DatabaseMail

Para enviar e-mail, deve-se criar uma conta no Database Mail, a qual contém as informações que o Microsoft SQL Server usa para enviar mensagens de e-mail a um servidor SMTP.

Para criar uma conta do Database Mail usando Transact-SQL:

  1. Determine o nome de servidor e o número de porta do servidor SMTP utilizado para enviar emails.
  2. Se o servidor SMTP exigir autenticação, determine o nome de usuário e a senha do servidor SMTP.
  3. Execute procedimento armazenado msdb.dbo.sysmail_add_account_sp para criar a conta, especificando:
    • O nome da conta a criar.
    • Uma descrição opcional da conta.
    • O endereço de email a ser exibido em mensagens de email enviadas.
    • O nome para exibição a aparecer nas mensagens de email enviadas.
    • O nome do servidor SMTP.
    • O nome de usuário a usar para fazer logon no servidor SMTP, se o servidor SMTP exigir autenticação.
    • A senha a usar para fazer logon no servidor SMTP, se o servidor SMTP exigir autenticação.



4. Perfil do DatabaseMail

Os aplicativos que enviam e-mail por meio do Database Mail especificam perfis, em vez de usar contas diretamente, portanto deve-se criar um perfil para associar à conta de e-mail.

Um perfil público permite a qualquer usuário acessar o banco de dados msdb para enviar emails usando o perfil.


Para criar um perfil público do Database Mail usando Transact-SQL

1.   Crie uma ou mais contas do Database Mail para o perfil. Para obter mais informações sobre como criar contas do Database Mail, consulte Como criar contas do Database Mail (Transact-SQL).

2.   Execute o procedimento armazenado msdb.dbo.sysmail_add_profile_sp para criar o perfil, especificando:

  • O nome do perfil a criar.
  • Uma descrição opcional do perfil.


3. Para cada conta, execute msdb.dbo.sysmail_add_profileaccount_sp para adicionar a conta ao perfil.



Expurgo de dados históricos

O Database Mail retém as mensagens enviadas e seus anexos no banco de dados msdb. Para evitar que o banco de dados msdb ocupe muito espaço em disco, em função do volume de mensagens armazenadas, é recomendável excluir mensagens mais atingias para recuperar espaço. Para excluir as mensagens, crie um Job no SQL Server Agent para excluir mensagens, anexos e entradas de log mais antigas através das seguintes procedures:

sysmail_delete_mailitems_sp

Use essa procedure para excluir mensagens utilizando os argumentos opcionais @sent_before ou @sent_status, os quais permitem excluir somente os emails mais antigos fornecendo uma data e hora ou de um determinado tipo. Você deve fornecer um argumento para @sent_before ou @sent_status.



sysmail_delete_log_sp

Use essa procedure para excluir para excluir entradas do log do Database Mail utilizando os argumentos opcionais @logged_before ou @event_type, os quais permitem excluir somente os registros mais antigos fornecendo uma data e hora ou de um determinado tipo.




Referências técnicas

Database Mail: http://msdn.microsoft.com/pt-br/library/ms189635.aspx

Objetos do Database Mail: http://msdn.microsoft.com/pt-br/library/ms175100.aspx

Cofigurar o Database Mail: http://msdn.microsoft.com/pt-br/library/hh245116.aspx