Database Mail

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

O Database Mail é uma solução corporativa para enviar mensagens de email do Mecanismo de Banco de Dados do SQL Server ou da Instância Gerenciada de SQL do Azure. Seus aplicativos podem enviar mensagens de email aos usuários usando o Database Mail por meio de um servidor SMTP externo. As mensagens podem conter resultados de consulta e incluir, também, arquivos de qualquer recurso de sua rede.

Observação

O Database Mail está disponível no Mecanismo de Banco de Dados do SQL Server e na Instância Gerenciada de SQL do Azure, mas não nos pools elástico e singleton do Banco de Dados SQL do Azure. Para obter mais informações sobre como usar o Database Mail na Instância Gerenciada de SQL do Azure, consulte Automatizar tarefas de gerenciamento usando trabalhos do SQL Agent na Instância Gerenciada de SQL do Azure.

Benefícios do uso do Database Mail

O Database Mail foi projetado de modo a garantir confiança, escalabilidade, segurança e suporte.

Confiabilidade

  • O Database Mail usa o protocolo SMTP (Simple Mail Transfer Protocol) padrão para enviar emails. Você pode usar o Database Mail sem instalar um cliente de MAPI Estendida no computador que executa o SQL Server.

  • Isolamento de processo. Para minimizar o impacto no SQL Server, o componente que entrega execuções de email fora do SQL Server, em um processo separado. O SQL Server continuará colocando na fila as mensagens de email mesmo se o processo externo parar ou falhar. As mensagens enfileiradas serão enviadas assim que o processo externo ou o servidor SMTP ficar online.

  • Contas de failover. Um perfil do Database Mail lhe permite especificar mais de um servidor SMTP. Caso um servidor SMTP fique indisponível, as mensagens poderão ser entregues por um outro servidor SMTP.

  • Suporte a cluster. O Database Mail reconhece cluster e conta com suporte total em um cluster.

Escalabilidade

  • Entrega em segundo plano: o Database Mail fornece entrega em segundo plano ou assíncrona. Quando você chama sp_send_dbmail para enviar uma mensagem, o Database Mail adiciona uma solicitação a uma fila do Service Broker. O procedimento armazenado retorna imediatamente. O componente de email externo recebe a solicitação e entrega o email.

  • Vários perfis: o Database Mail permite criar vários perfis dentro de uma instância do SQL Server. Opcionalmente, você pode escolher o perfil a ser utilizado pelo Database Mail para enviar uma mensagem.

  • Várias contas: cada perfil pode conter várias contas de failover. Você pode configurar perfis diferentes com contas diferentes para distribuir email por vários servidores de email.

  • Compatibilidade de 64 bits: o Database Mail tem suporte total em instalações de 64 bits do SQL Server.

Segurança

  • Desativada por padrão: para reduzir a área da superfície do SQL Server, os procedimentos armazenados do Database Mail ficam desabilitados por padrão.

  • Segurança de correio: para enviar o Database Mail, você deve ser membro da função de banco de dados DatabaseMailUserRole no banco de dados msdb.

  • Segurança do perfil: o Database Mail impõe a segurança dos perfis de email. Você escolhe os usuários ou grupos do banco de dados msdb que têm acesso a um perfil do Database Mail. Você pode conceder acesso a usuários específicos ou a todos os usuários em msdb. Os perfis particulares restringem o acesso a uma lista especificada de usuários. Os perfis públicos estão disponível para todos os usuários de um banco de dados.

  • Administrador de tamanho de anexo: o Database Mail impõe um limite configurável ao tamanho do arquivo de anexo. É possível alterar esse limite usando o procedimento armazenado sysmail_configure_sp .

  • Extensões de arquivo proibidas: o Database Mail mantém uma lista de extensões de arquivo proibidas. Arquivos com extensões que figuram na lista não podem ser anexados pelos usuários. É possível alterar essa lista usando sysmail_configure_sp.

  • O Database Mail é executado na conta de serviço do mecanismo do Mecanismo do SQL Server. Para anexar um arquivo de uma pasta a um email, a conta de mecanismo do SQL Server deve ter permissões para acessar a pasta com o arquivo.

Capacidade de Suporte

  • Configuração integrada: o Database Mail mantém as informações das contas de email no Mecanismo de Banco de Dados do SQL Server. Não há nenhuma necessidade de gerenciar um perfil de email em um aplicativo cliente externo. O Assistente para Configuração do Database Mail é uma interface conveniente para a configuração do Database Mail. Você também pode criar e manter configurações do Database Mail usando o Transact-SQL.

  • Log. O Database Mail registra a atividade de email no SQL Server, no log de eventos de aplicativos do Microsoft Windows e em tabelas do banco de dados msdb.

  • Auditoria: o Database Mail mantém cópias das mensagens e dos anexos enviados no banco de dados msdb. É fácil auditar o uso do Database Mail e examinar as mensagens retidas.

  • Suporte a HTML. O Database Mail lhe permite enviar email formatado como HTML.

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 correio e cria um registro que contém a mensagem de 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.

msdb sends messages to an SMTP mail server

Introdução aos componentes 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 do host de correio que contém os objetos de mensagens que o Database Mail usa para enviar emails. Esses objetos incluem o procedimento armazenado sp_send_dbmail e as estruturas de dados que contêm informações sobre mensagens.

  • Executável do Database Mail

    O executável do Database Mail é um programa externo que lê de uma fila no banco de dados msdb e envia mensagens para 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.

Configurando o SQL Agent para usar o Database Mail

O SQL Server Agent pode ser configurado para usar o Database Mail. Isso é necessário para notificações de alerta e notificação automática quando um trabalho é concluído.

Aviso

Etapas de trabalho individuais dentro de um trabalho também podem enviar email sem configurar o SQL Server Agent para usar o Database Mail. Por exemplo, uma etapa de trabalho Transact-SQL pode usar o Database Mail para enviar os resultados de uma consulta para uma lista de destinatários.

Você pode configurar o SQL Server Agent para enviar mensagens de email a operadores predefinidos, quando:

  • Um alerta é disparado. Alertas podem ser configurados para que enviem notificação por email sobre eventos específicos ocorridos. Por exemplo, podem ser configurados alertas que notifiquem um operador sobre um evento de banco de dados em particular ou uma condição do sistema operacional que talvez necessite de ação imediata. Para obter mais informações sobre como configurar alertas, veja Alertas.

  • Uma tarefa agendada, como um backup de banco de dados ou evento de replicação, obtém êxito ou falha. Por exemplo, você pode usar o SQL Server Agent Mail para notificar operadores se ocorrer um erro durante o processamento do final de um mês.

Confira também

Próximas etapas