sql >> Base de Datos >  >> RDS >> Sqlserver

Comprobar el estado de todos los mensajes de correo de la base de datos en SQL Server (T-SQL)

Si usa el Correo electrónico de base de datos en SQL Server, puede usar sysmail_allitems ver para comprobar el estado de todos los correos electrónicos que ha procesado el Correo electrónico de base de datos.

Ejemplo

Aquí hay un ejemplo de cómo verificar el estado de todos los mensajes de correo. Tenga en cuenta que esto debe hacerse en msdb base de datos.

SELECT * FROM msdb.dbo.sysmail_allitems;

Resultado (usando salida vertical):

mailitem_id                 | 1
profile_id                  | 1
recipients                  | [email protected]
copy_recipients             | NULL
blind_copy_recipients       | NULL
subject                     | SQL Server Agent Job: FAILED
body                        | Your favorite SQL Server Agent job just failed
body_format                 | TEXT
importance                  | NORMAL
sensitivity                 | NORMAL
file_attachments            | NULL
attachment_encoding         | MIME
query                       | NULL
execute_query_database      | NULL
attach_query_result_as_file | 0
query_result_header         | 1
query_result_width          | 256
query_result_separator      |  
exclude_query_output        | 0
append_query_error          | 0
send_request_date           | 2020-08-24 02:40:48.093
send_request_user           | sa
sent_account_id             | NULL
sent_status                 | failed
sent_date                   | 2020-08-24 02:41:53.000
last_mod_date               | 2020-08-24 02:41:53.290
last_mod_user               | sa

Usé la salida vertical aquí para que no tenga que desplazarse hacia los lados para ver todas las columnas.

También estoy mostrando solo la primera fila (aunque se devolvieron cuatro filas), para mantener las cosas concisas.

Aquí está de nuevo, excepto que esta vez mostraré las cuatro filas. Esta vez cambiaré a la salida horizontal normal y especificaré solo unas pocas columnas.

SELECT
    mailitem_id,
    sent_status,
    send_request_date
FROM msdb.dbo.sysmail_allitems;

Resultado (usando salida vertical):

+---------------+---------------+-------------------------+
| mailitem_id   | sent_status   | send_request_date       |
|---------------+---------------+-------------------------|
| 1             | failed        | 2020-08-24 02:40:48.093 |
| 2             | failed        | 2020-08-24 02:47:40.833 |
| 3             | sent          | 2020-08-24 03:58:57.887 |
| 4             | sent          | 2020-08-24 04:11:19.300 |
+---------------+---------------+-------------------------+