Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
Azure SQL Managed Instance
Artikel ini menjelaskan cara memeriksa status pesan email yang dikirim menggunakan Email Database di SQL Server dengan menggunakan Transact-SQL.
- Database Mail menyimpan salinan pesan email keluar dan menampilkannya dalam tampilan
sysmail_allitems,sysmail_sentitems,sysmail_unsentitems,sysmail_faileditemsdari databasemsdb. - Program eksternal Email Database mencatat aktivitas dan menampilkan log melalui Log Peristiwa Aplikasi Windows dan tampilan
sysmail_event_logdalam databasemsdb. - Pesan email memiliki salah satu dari empat kemungkinan status: dikirim, tidak dikirim, coba lagi, dan gagal.
Untuk memeriksa status pesan email, jalankan kueri terhadap msdb.dbo.sysmail_event_log tampilan sistem.
Gunakan Transact-SQL untuk menampilkan status email yang dikirim menggunakan Email Database
Pilih dari tabel
sysmail_allitems, dengan menentukan pesan yang diinginkan melaluimailitem_idatausent_status.Untuk memeriksa status yang dikembalikan dari program eksternal untuk pesan email, gabungkan
sysmail_allitemsdengansysmail_event_logdi kolommailitem_id.Secara default, program eksternal tidak mencatat informasi tentang pesan yang berhasil dikirim. Untuk mencatat semua pesan, atur tingkat pencatatan menjadi verbose dengan menggunakan halaman Konfigurasi Parameter Sistem pada Wizard Konfigurasi Email Database.
Contoh berikut mencantumkan informasi tentang pesan email yang dikirim ke danw yang tidak berhasil dikirim program eksternal. Pernyataan mencantumkan subjek, tanggal dan waktu program eksternal gagal mengirim pesan, dan pesan kesalahan dari log Email Database.
USE msdb ;
GO
-- Show the subject, the time that the mail item row was last
-- modified, and the log information.
-- Join sysmail_faileditems to sysmail_event_log
-- on the mailitem_id column.
-- In the WHERE clause list items where danw was in the recipients,
-- copy_recipients, or blind_copy_recipients.
-- These are the items that would have been sent
-- to danw.
SELECT items.subject,
items.last_mod_date
,l.description
FROM dbo.sysmail_faileditems AS items
INNER JOIN dbo.sysmail_event_log AS l
ON items.mailitem_id = l.mailitem_id
WHERE items.recipients LIKE '%danw%'
OR items.copy_recipients LIKE '%danw%'
OR items.blind_copy_recipients LIKE '%danw%';
GO