Arquitetura do Database Mail
O Database Mail consiste nos seguintes componentes principais:
Componentes de configuração e segurança
O Database Mail armazena informações de configuração e segurança no banco de dados msdb. Objetos de configuração e segurança criam perfis e contas usadas pelo Database Mail.
Componentes de sistema de mensagens
O banco de dados msdb atua como o banco de dados de correio-host que mantém os objetos do sistema de mensagens utilizado pelo Database Mail para enviar emails. Esses objetos compreendem o procedimento armazenado sp_send_dbmail e as estruturas de dados que guardam informações sobre mensagens.
Executável do Database Mail
O executável do Database Mail é um programa externo que lê uma fila no banco de dados msdb e envia mensagens a servidores de email.
Componentes de registro em log e auditoria
O Database Mail registra informações de log no banco de dados msdb e no log de eventos de aplicativos do Microsoft Windows.
Não é preciso compreender inteiramente a arquitetura do Database Mail para utilizá-lo com eficácia. Contudo, compreender os componentes do Database Mail e como eles interagem pode ajudá-lo no design de seus aplicativos e na solução de eventuais problemas.
A ilustração a seguir dá uma visão geral da arquitetura do Database Mail.
O Database Mail foi projetado em uma arquitetura de filas que usa tecnologias do Service Broker. Quando os usuários executam sp_send_dbmail, o procedimento armazenado insere um item na fila de emails e cria um registro que contém a mensagem do email. A inserção da nova entrada na fila de emails inicia o processo externo do Database Mail ((DatabaseMail.exe). O processo externo lê as informações de email e envia a mensagem ao servidor ou servidores de email adequados. O processo externo insere um item na fila Status quanto ao resultado da operação de envio. A inserção da nova entrada na fila de status faz com que seja iniciado um procedimento armazenado que atualiza o status da mensagem de email. Além de armazenar a mensagem de email enviada ou não, o Database Mail também registra eventuais anexos dos emails nas tabelas do sistema. As exibições do Database Mail fornecem o status das mensagens para a solução de problemas, e os procedimentos armazenados permitem a administração da fila do Database Mail.
Apenas membros da função DatabaseMailUserRole no banco de dados msdb podem executar sp_send_dbmail.
Consulte também