Compartir a través de


sysmail_unsentitems (Transact-SQL)

Contiene una fila por cada mensaje del Correo electrónico de base de datos con el estado unsent o retrying. Los mensajes con el estado unsent o retrying siguen en la cola de correo y pueden ser enviados en cualquier momento. Los mensajes pueden tener el estado unsent por los motivos siguientes:

  • El mensaje es nuevo y, aunque se ha colocado en la cola de correo, el Correo electrónico de base de datos está ocupado con otros mensajes y aún no ha alcanzado éste.

  • El programa externo del Correo electrónico de base de datos no está en ejecución y no se envía ningún mensaje.

Los mensajes pueden tener el estado retrying por los motivos siguientes:

  • El Correo electrónico de base de datos intentó enviar el mensaje, pero no se pudo contactar con el servidor de correo SMTP. El Correo electrónico de base de datos seguirá intentando enviar el mensaje con otras cuentas propias asignadas al perfil que envió el mensaje. Si ninguna cuenta puede enviar el mensaje, el Correo electrónico de base de datos esperará el tiempo configurado en el parámetro Intervalo entre reintentos de cuenta y, a continuación, intentará volver a enviar el mensaje. El Correo electrónico de base de datos utiliza el parámetro Número de reintentos de cuenta para determinar cuántas veces se debe intentar enviar un mensaje. Los mensajes conservan el estado retrying mientras el Correo electrónico de base de datos intenta enviar el mensaje.

Utilice esta vista cuando desee ver cuántos mensajes hay en espera para ser enviados y cuánto tiempo llevan en la cola de correo. Normalmente, el número de mensajes con el estado unsent es bajo. Realice una prueba comparativa durante las operaciones normales para determinar un número razonable de mensajes en la cola para las operaciones.

Para ver todos los mensajes procesados por el Correo electrónico de base de datos, utilice sysmail_allitems (Transact-SQL). Para ver solo los mensajes con error, utilice sysmail_faileditems (Transact-SQL). Para ver solo los mensajes enviados, utilice sysmail_sentitems (Transact-SQL).

Nombre de columna

Tipo de datos

Descripción

mailitem_id

int

Identificador del elemento de correo en la cola de correo electrónico.

profile_id

int

Identificador del perfil utilizado para enviar el mensaje.

recipients

varchar(max)

Direcciones de correo electrónico de los destinatarios de mensajes.

copy_recipients

varchar(max)

Direcciones de correo electrónico de los destinatarios que reciben copias del mensaje.

blind_copy_recipients

varchar(max)

Direcciones de correo electrónico de los destinatarios que reciben copias del mensaje pero cuyos nombres no aparecen en el encabezado del mensaje.

subject

nvarchar(510)

Línea de asunto del mensaje.

body

varchar(max)

Cuerpo del mensaje.

body_format

varchar(20)

Formato del cuerpo del mensaje. Los valores posibles son TEXT y HTML.

importance

varchar(6)

Parámetro importance del mensaje.

sensitivity

varchar(12)

Parámetro sensitivity del mensaje.

file_attachments

varchar(max)

Lista de nombres, separados por punto y coma, de los archivos que se van a adjuntar al mensaje de correo.

attachment_encoding

varchar(20)

Tipo de datos adjuntos.

query

varchar(max)

Consulta ejecutada por el programa de correo.

execute_query_database

sysname

Contexto de base de datos en el cual el programa de correo ejecutó la consulta.

attach_query_result_as_file

bit

Si el valor es 0, los resultados de la consulta se incluyeron en el cuerpo del mensaje de correo electrónico, después del contenido del cuerpo. Si el valor es 1, los resultados se devolvieron como datos adjuntos.

query_result_header

bit

Si el valor es 1, los resultados de la consulta contenían encabezados de columna. Si el valor es 0, los resultados de la consulta no contenían encabezados de columna.

query_result_width

int

Parámetro query_result_width del mensaje.

query_result_separator

char(1)

Carácter utilizado para separar columnas en la salida de la consulta.

exclude_query_output

bit

Parámetro exclude_query_output del mensaje. Para obtener más información, vea sp_send_dbmail (Transact-SQL).

append_query_error

bit

Parámetro append_query_error del mensaje. El valor 0 indica que el Correo electrónico de base de datos no debe enviar el mensaje de correo electrónico si hay un error en la consulta.

send_request_date

datetime

Fecha y hora en que se colocó el mensaje en la cola de correo electrónico.

send_request_user

sysname

Usuario que envió el mensaje. Se trata del contexto de usuario del procedimiento del Correo electrónico de base de datos, no del campo De del mensaje.

sent_account_id

int

Identificador de la cuenta del Correo electrónico de base de datos utilizada para enviar el mensaje. Siempre es NULL para esta vista.

sent_status

varchar(8)

El estado será unsent si el Correo electrónico de base de datos no ha intentado enviar el mensaje. El estado será retrying si el Correo electrónico de base de datos no ha podido enviar el mensaje pero está intentando enviarlo de nuevo.

sent_date

datetime

Fecha y hora en las que el Correo electrónico de base de datos intentó por última vez enviar el mensaje. Será NULL si el Correo electrónico de base de datos no ha intentado enviar el mensaje.

last_mod_date

datetime

Fecha y hora de la modificación más reciente de la fila.

last_mod_user

sysname

Usuario que realizó la modificación más reciente de la fila.

Comentarios

Al solucionar problemas del Correo electrónico de base de datos, puede que esta vista le ayude a identificar la naturaleza del problema, pues en ella se muestra el número de mensajes a la espera de ser enviados y el tiempo que llevan esperando. Si no se está enviando ningún mensaje, puede que el programa externo del Correo electrónico de base de datos no esté en ejecución o que un problema de red impida que el Correo electrónico de base de datos se ponga en contacto con los servidores SMTP. Si varios de los mensajes sin enviar tienen el mismo profile_id, puede que haya un problema con el servidor SMTP. Considere la posibilidad de agregar cuentas adicionales al perfil. Si se envían los mensajes pero pasan demasiado tiempo en la cola, puede que SQL Server necesite más recursos para procesar el volumen de mensajes que requiere.

Permisos

Se conceden al rol fijo de servidor sysadmin y al rol de base de datos DatabaseMailUserRole. Cuando la ejecuta un miembro del rol fijo de servidor sysadmin, esta vista muestra todos los mensajes unsent o retrying. Todos los demás usuarios verán únicamente los mensajes con el estado unsent o retrying que envíen ellos mismos.