Partilhar via


Correio de banco de dados

Aplica-se a:SQL ServerAzure SQL Managed Instance

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

Observação

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

Benefícios do uso do Database Mail

O Database Mail foi projetado para oferecer confiabilidade, escalabilidade, segurança e capacidade de suporte.

Fiabilidade

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

  • Isolamento do processo. Para minimizar o impacto no SQL Server, o componente que entrega email é executado fora do SQL Server, em um processo separado. O SQL Server continuará a enfileirar mensagens de email mesmo se o processo externo parar ou falhar. As mensagens em fila serão enviadas quando o processo externo ou o servidor SMTP estiverem online.

  • Contas de failover. Um perfil do Database Mail permite especificar mais de um servidor SMTP. Se um servidor SMTP não estiver disponível, o email ainda poderá ser entregue a outro servidor SMTP.

  • Suporte de clusters O Database Mail reconhece clusters e é totalmente suportado em um cluster.

Escalabilidade

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

  • Vários perfis: o Database Mail permite criar vários perfis em uma instância do SQL Server. Opcionalmente, você pode escolher o perfil que o Database Mail usa quando envia uma mensagem.

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

  • Compatibilidade de 64 bits: o Database Mail é totalmente suportado em instalações de 64 bits do SQL Server.

Segurança

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

    • Para configurar o Database Mail, você deve ser membro da função de servidor fixa sysadmin .
  • Segurança do Correio: Para enviar Correio da Base de Dados, deve ser membro do papel de base de dados DatabaseMailUserRole na msdb base de dados.

  • Segurança de perfil: o Database Mail impõe segurança para perfis de email. Você escolhe os msdb usuários ou grupos de banco de dados 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 no msdb. Um perfil privado restringe o acesso a uma lista especificada de usuários. Um perfil público está disponível para todos os usuários em um banco de dados.

  • Administrador de tamanho de anexo: o Database Mail impõe um limite configurável no tamanho do arquivo de anexo. Você pode alterar esse limite usando o sysmail_configure_sp procedimento armazenado.

  • Extensões de arquivo proibidas: o Database Mail mantém uma lista de extensões de arquivo proibidas. Os utilizadores não podem anexar ficheiros com uma extensão que apareça na lista. Você pode alterar essa lista usando sysmail_configure_sp.

  • O Database Mail é executado na conta de serviço 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 é necessário gerir um perfil de email numa aplicação cliente externa. O Assistente de Configuração do Database Mail fornece uma interface conveniente para configurar o Database Mail. Você também pode criar e manter configurações do Database Mail usando o Transact-SQL.

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

  • Auditoria: o Database Mail mantém cópias das mensagens e anexos enviados no msdb banco de dados. Você pode facilmente auditar o uso do Database Mail e revisar as mensagens retidas.

  • Suporte para HTML: Database Mail permite enviar e-mails formatados como HTML.

Arquitetura de correio de base de dados

O Database Mail foi projetado em uma arquitetura em fila que usa tecnologias de agente de serviços. Quando os utilizadores executam sp_send_dbmail, o procedimento armazenado insere um item na fila de e-mails e cria um registo que contém a mensagem de e-mail. 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 correio eletrónico e envia a mensagem de correio eletrónico para o(s) servidor(es) de correio eletrónico apropriado(s). O processo externo insere um item na fila Status para o resultado da operação de envio. A inserção da nova entrada na fila de status inicia um procedimento armazenado interno que atualiza o status da mensagem de email. Além de armazenar a mensagem de email enviada ou não enviada, o Database Mail também registra todos os anexos de email nas tabelas do sistema. As exibições do Database Mail fornecem o status das mensagens para solução de problemas e os procedimentos armazenados permitem a administração da fila do Database Mail.

Diagrama de como o banco de dados do sistema msdb envia mensagens para um servidor de email SMTP.

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 msdb banco de dados. Os objetos de configuração e segurança criam perfis e contas usados pelo Database Mail.

  • Componentes de mensagens

    O msdb banco de dados atua como o banco de dados host de email que contém os objetos de mensagens que o Database Mail usa para enviar email. Esses objetos incluem o sp_send_dbmail procedimento armazenado 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 msdb no banco de dados e envia mensagens para servidores de e-mail.

  • Componentes de registro e auditoria

    O Database Mail regista informações de log no banco de dados e no log de eventos de aplicativos do Microsoft Windows.

Configurar o SQL Agent para usar o Correio da Base de Dados

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.

Advertência

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 para operadores predefinidos quando:

  • Um alerta é disparado. Os alertas podem ser configurados para enviar notificações por e-mail de eventos específicos que ocorrem. Por exemplo, os alertas podem ser configurados para notificar um operador de um determinado evento de banco de dados ou condição do sistema operacional que pode precisar de ação imediata. Para obter mais informações sobre como configurar alertas, consulte Alertas.

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

Para começar a configurar o SQL Agent para usar Database Mail, consulte Configurar o SQL Server Agent mail para usar Database Mail.

Correio de base de dados com grupos de disponibilidade contidos

Para usar o correio da base de dados com grupos de disponibilidade contidos, deve ligar-se à instância e ativar os XPs do Correio da Base de Dados (opção de configuração do servidor) usando o sp_configure procedimento armazenado do sistema. Este passo deve ser realizado em todas as réplicas do grupo de disponibilidade contido.

  • Se tentar ativar a sp_configure opção para correio da base de dados quando ligado ao ouvinte do grupo de disponibilidade contido, receberá o erro esperado: Changes to server configuration options are not permitted in the connection to Contained Availability Group. Change connection to SQL Server instance level and retry the operation. (Microsoft SQL Server, Error: 5874)

Após ativar a Database Mail XPs opção em todas as réplicas, ligue-se ao listener do grupo de disponibilidade contido para continuar com a configuração do correio da base de dados, conforme descrito em Select Configuration Task. Isto garantirá que os objetos de correio da base de dados existem dentro do grupo de disponibilidade contido e permanecem sincronizados.

Suporte a TDS 8.0

O SQL Server 2025 (17.x) introduziu suporte TDS 8.0 para Correio de Base de Dados. O protocolo TDS 8.0 proporciona segurança e encriptação reforçadas para os dados transmitidos entre SQL Server e aplicações clientes. Isto permite que o Database Mail funcione em ambientes onde a encriptação TLS 1.3 e TDS 8.0 são aplicadas.

Troubleshoot

Para solucionar problemas do Database Mail, visite:

Próximo passo