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.