Correo electrónico de base de datos

Se aplica a:SQL ServerAzure SQL Managed Instance

El Correo electrónico de base de datos es una solución empresarial para enviar mensajes de correo electrónico desde el motor de base de datos de SQL Server o Azure SQL Managed Instance. Sus aplicaciones pueden enviar mensajes de correo electrónico a los usuarios utilizando el Correo electrónico de base de datos a través de un servidor SMTP externo. Los mensajes enviados pueden incluir resultados de consultas y archivos de cualquier recurso de la red.

Nota:

El Correo electrónico de base de datos está disponible en el motor de base de datos de SQL Server y en Azure SQL Managed Instance, pero no en la base de datos Azure SQL singleton ni en los grupos elásticos. Para más información sobre el uso del Correo electrónico de base de datos en Azure SQL Managed Instance, consulte Automatización de tareas de administración mediante trabajos del Agente SQL en Azure SQL Managed Instance.

Ventajas de usar el Correo electrónico de base de datos

El Correo electrónico de base de datos está diseñado para proporcionar confiabilidad, escalabilidad, seguridad y compatibilidad.

Fiabilidad

  • El Correo electrónico de base de datos usa el protocolo estándar SMTP (Protocolo simple de transferencia de correo) para enviar correo electrónico. Puede utilizar el Correo electrónico de base de datos sin necesidad de instalar un cliente con MAPI extendida en el equipo en el que se ejecuta SQL Server.

  • Aislamiento de procesos. Para minimizar el impacto en SQL Server, el componente que entrega el correo electrónico se ejecuta fuera de SQL Server, en un proceso independiente. SQL Server continuará almacenando en cola los mensajes de correo electrónico incluso si el proceso externo se detiene o genera un error. Los mensajes en cola se enviarán cuando el proceso externo o el servidor SMTP se encuentren en línea.

  • Cuentas de conmutación por error. Los perfiles del Correo electrónico de base de datos permiten especificar más de un servidor SMTP. Si un servidor SMTP no está disponible, se puede enviar el correo mediante otro.

  • Compatibilidad con clústeres. El Correo electrónico de base de datos es una aplicación para clústeres y es totalmente compatible con estos.

Escalabilidad

  • Entrega en segundo plano: el Correo electrónico de base de datos permite realizar entregas en segundo plano o asincrónicas. Cuando se llama a sp_send_dbmail para enviar un mensaje, Correo electrónico de base de datos agrega una solicitud a una cola de Service Broker. El procedimiento almacenado se devuelve inmediatamente. El componente de correo electrónico externo recibe la solicitud y entrega el mensaje.

  • Varios perfiles: el Correo electrónico de base de datos permite crear varios perfiles en una instancia de SQL Server. También se puede elegir el perfil del Correo electrónico de base de datos para enviar el mensaje.

  • Varias cuentas: cada perfil puede incluir varias cuentas de conmutación por error. Se pueden configurar varios perfiles con distintas cuentas para distribuir el correo electrónico entre varios servidores de correo.

  • Compatibilidad con 64 bits: el Correo electrónico de base de datos es totalmente compatible con las versiones de 64 bits de SQL Server.

Seguridad

  • Desactivado de forma predeterminada: para reducir el área expuesta de SQL Server, los procedimientos almacenados del Correo electrónico de base de datos están deshabilitados de forma predeterminada.

  • Seguridad de correo electrónico: para enviar Correo electrónico de base de datos debe ser miembro del rol de base de datos DatabaseMailUserRole en la base de datos msdb.

  • Seguridad de perfil: el Correo electrónico de base de datos aplica la seguridad para los perfiles de correo. El usuario elige cuáles son los usuarios o grupos de la base de datos msdb que tienen acceso a los perfiles del Correo electrónico de base de datos. Se puede conceder acceso a usuarios específicos o a todos los usuarios de msdb. Un perfil privado restringe el acceso a una lista especificada de usuarios. Un perfil público está disponible para todos los usuarios de la base de datos.

  • Regulador del tamaño de los datos adjuntos: el Correo electrónico de base de datos aplica un límite configurable para el tamaño de los datos adjuntos. Puede cambiar este límite usando el procedimiento almacenado sysmail_configure_sp .

  • Extensiones de archivo prohibidas: el Correo electrónico de base de datos mantiene una lista de extensiones de archivo prohibidas. Los usuarios no pueden adjuntar archivos con las extensiones de la lista. Puede cambiar esta lista utilizando sysmail_configure_sp.

  • Correo electrónico de base de datos se ejecuta bajo la cuenta de servicio de motor de SQL Server. Para adjuntar un archivo de una carpeta a un mensaje de correo electrónico, la cuenta de motor de SQL Server debe tener permisos de acceso a la carpeta con el archivo.

Compatibilidad

  • Configuración integrada: el Correo electrónico de base de datos mantiene la información de las cuentas de correo electrónico del motor de base de datos deSQL Server. No es necesario administrar un perfil de correo en una aplicación cliente externa. El Asistente para configuración del Correo electrónico de base de datos proporciona una interfaz adecuada para configurar el Correo electrónico de base de datos. También se pueden crear y mantener configuraciones del Correo electrónico de base de datos mediante Transact-SQL.

  • Registro. Correo electrónico de base de datos registra la actividad de correo electrónico en , en el registro de eventos de aplicación de Microsoft Windows y en las tablas de la base de datos msdb.

  • Auditar: El Correo electrónico de base de datos conserva copias de los mensajes y datos adjuntos enviados en la base de datos msdb. Puede auditar fácilmente el uso del Correo electrónico de base de datos y revisar los mensajes conservados.

  • Compatibilidad con HTML: el Correo electrónico de base de datos permite enviar mensajes de correo electrónico con el formato HTML.

Arquitectura del Correo electrónico de base de datos

El Correo electrónico de base de datos está diseñado en una arquitectura en cola que usa tecnologías de Service Broker. Cuando los usuarios ejecutan sp_send_dbmail, el procedimiento almacenado inserta un elemento en la cola de correo y crea un registro que contiene el mensaje de correo electrónico. La inserción de la nueva entrada en la cola de correo inicia el proceso externo de Correo electrónico de base de datos (DatabaseMail.exe). El proceso externo lee la información de correo electrónico y envía el mensaje de correo electrónico al servidor o servidores de correo electrónico adecuados. El proceso externo inserta un elemento en la cola Estado para el resultado de la operación de envío. La inserción de la nueva entrada en la cola de estado inicia el procedimiento almacenado interno que actualiza el estado del mensaje de correo electrónico. Además de almacenar el mensaje de correo electrónico enviado, o no enviado, el Correo electrónico de base de datos también registra cualquier dato adjunto del correo electrónico en las tablas del sistema. Las vistas del Correo electrónico de base de datos proporcionan el estado de los mensajes para solucionar problemas y los procedimientos almacenados permiten la administración de la cola del Correo electrónico de base de datos.

msdb sends messages to an SMTP mail server

Introducción a los componentes de Correo electrónico de base de datos

El Correo electrónico de base de datos consta de los componentes principales siguientes:

  • Componentes de seguridad y configuración

    El Correo electrónico de base de datos almacena información de configuración y seguridad en la base de datos msdb. Los objetos de configuración y seguridad crean perfiles y cuentas usadas por el Correo electrónico de base de datos.

  • Componentes de mensajería

    La base de datos msdb actúa como la base de datos host de correo que contiene los objetos de mensajería que Correo electrónico de base de datos usa para enviar correo electrónico. Estos objetos incluyen el procedimiento almacenado sp_send_dbmail y las estructuras de datos que contienen información acerca de los mensajes.

  • Ejecutable del Correo electrónico de base de datos

    El ejecutable del Correo electrónico de base de datos es un programa externo que lee en una cola de la base de datos msdb y envía mensajes a servidores de correo electrónico.

  • Componentes de registro y auditoría

    El Correo electrónico de base de datos registra información de registro en la base de datos msdb y el registro de eventos de aplicación de Microsoft Windows.

Configuración de Agente SQL para usar el Correo electrónico de base de datos:

El Agente SQL Server se puede configurar para usar el Correo electrónico de base de datos. Esto es necesario para la notificación de alertas y la notificación automática cuando se completa un trabajo.

Advertencia

Cada paso de un trabajo puede también enviar un correo electrónico sin configurar el Agente SQL Server para usar el Correo electrónico de la base de datos. Por ejemplo, un paso de trabajo de Transact-SQL puede usar el Correo electrónico de base de datos para enviar el resultado de una consulta a la lista de destinatarios.

Puede configurar el Agente SQL Server para enviar mensajes de correo electrónico a operadores predefinidos cuando:

  • Se desencadene una alerta. Las alertas se pueden configurar para enviar una notificación por correo electrónico acerca de eventos específicos que se produzcan. Por ejemplo, es posible configurar alertas para que avisen a un operador acerca de un determinado evento de la base de datos o una situación del sistema operativo que precise una acción inmediata. Para obtener más información sobre cómo configurar alertas, vea Alertas.

  • Se lleve a cabo o no se complete una tarea programada, como una copia de seguridad de la base de datos o un evento de replicación. Por ejemplo, puede usar el correo del Agente SQL Server para notificar a los operadores si se produce un error durante el procesamiento a fin de mes.

Consulte también

Pasos siguientes