Perfiles del Correo electrónico de base de datos

Un perfil del Correo electrónico de base de datos es una colección ordenada de cuentas relacionadas del Correo electrónico de base de datos. Para enviar correo, debe ser un miembro de la función DatabaseMailUserRole en la base de datos msdb y tener acceso como mínimo a un perfil de Correo electrónico de base de datos. Los perfiles permiten a los administradores de bases de datos volver a configurar procedimientos almacenados y aplicaciones de bases de datos que utilizan el correo electrónico sin modificar el código de la aplicación. Por ejemplo, se puede configurar un perfil con un conjunto de cuentas de correo electrónico durante el período de programación y pruebas de una aplicación y actualizarlo más adelante con un conjunto de cuentas distinto cuando empiece la producción de la aplicación. La aplicación utilizará el mismo nombre de perfil, pero enviará el correo electrónico utilizando una lista de servidores de correo distinta.

[!NOTA]

Puesto que el Correo electrónico de base de datos no utiliza la Interfaz de programación de aplicaciones de mensajería (MAPI), los perfiles de Correo electrónico de base de datos no son perfiles de correo MAPI. El Correo electrónico de base de datos no utiliza perfiles de SQL Mail.

Los perfiles mejoran la confiabilidad en los casos en que un servidor de correo electrónico no está disponible o no puede procesar mensajes. Cada cuenta del perfil tiene un número de secuencia. El número de secuencia determina el orden en que el Correo electrónico de base de datos utiliza las cuentas en el perfil. En el caso de un mensaje de correo electrónico nuevo, el Correo electrónico de base de datos utiliza la última cuenta que envió un mensaje correctamente o la cuenta con el número de secuencia más bajo si aún no se ha enviado ningún mensaje. Si la cuenta genera un error, el Correo electrónico de base de datos utiliza la cuenta con el siguiente número de secuencia superior y así sucesivamente hasta que el Correo electrónico de base de datos envía el mensaje correctamente o la cuenta con el número de secuencia superior genera un error. Si la cuenta con el número de secuencia superior genera un error, el Correo electrónico de base de datos pausa los intentos de envío del correo electrónico durante la cantidad de tiempo configurada en el parámetro AccountRetryDelay de sysmail_configure_sp y, a continuación, inicia el proceso de nuevo intento de envío del correo electrónico comenzando por el número de secuencia más bajo. Utilice el parámetro AccountRetryAttempts de sysmail_configure_sp para configurar el número de veces que el proceso de correo electrónico externo intenta enviar el mensaje de correo electrónico con cada cuenta del perfil especificado.

Si hay más de una cuenta con el mismo número de secuencia, el Correo electrónico de base de datos sólo utiliza una de estas cuentas para un mensaje de correo electrónico determinado. En este caso, el Correo electrónico de base de datos no confirma qué cuenta se va a utilizar para el número de secuencia o que se vaya a utilizar la misma cuenta de un mensaje a otro.

Los perfiles también ayudan a los administradores de bases de datos a controlar el acceso al correo electrónico. Para poder enviar Correo electrónico de base de datos, es necesario ser miembro de la función DatabaseMailUserRole. Los perfiles proporcionan a los administradores mayor flexibilidad para controlar quién envía correo y qué cuentas se usan. El Correo electrónico de base de datos mantiene para cada perfil privado una lista de los usuarios que tienen permiso para enviar correo electrónico mediante dicho perfil. Los perfiles públicos están disponibles para los usuarios o las funciones de la base de datos msdb que también son miembros de la función DatabaseMailUserRole.

De forma predeterminada, los perfiles son privados y no se concede el acceso a los mismos a ningún usuario. Para convertirlos en públicos, se debe conceder acceso al usuario 'public' o al Id. de usuario 0. Para obtener más información acerca de cómo conceder acceso a los perfiles, vea sysmail_add_principalprofile_sp (Transact-SQL).

Los perfiles pueden ser predeterminados. En este caso, los usuarios pueden utilizar el perfil para enviar correo electrónico sin especificarlo explícitamente. Si el usuario que envía el mensaje de correo electrónico tiene un perfil privado predeterminado, el Correo electrónico de base de datos utilizará dicho perfil. Si el usuario no tiene un perfil privado predeterminado, sp_send_dbmail utiliza el perfil público predeterminado de la base de datos. Si no hay ningún perfil privado predeterminado para el usuario ni tampoco ningún perfil público predeterminado para la base de datos, sp_send_dbmail devuelve un error. En todos los casos, un usuario debe ser miembro de la función DatabaseMailUserRole para poder enviar Correo electrónico de base de datos.