Jika Anda mencoba mengirim email menggunakan Database Mail di SQL Server, tetapi gagal terkirim, Anda dapat memeriksa sysmail_event_log
lihat untuk melihat mengapa gagal.
sysmail_event_log
view mengembalikan satu baris untuk setiap pesan Windows atau SQL Server yang dikembalikan oleh sistem Database Mail. Dengan "pesan", maksud saya bukan pesan email yang sebenarnya. Maksud saya pesan seperti pesan kesalahan yang menjelaskan mengapa email gagal.
Anda juga dapat menggunakan sysmail_configure_sp
prosedur tersimpan untuk menentukan jenis pesan apa yang dicatat.
Contoh
Berikut adalah contoh untuk mendemonstrasikan cara menggunakan sysmail_event_log
untuk mengembalikan semua pesan.
SELECT * FROM msdb.dbo.sysmail_event_log;
Di sistem saya, ini mengembalikan terlalu banyak data untuk ditampilkan di sini, tetapi ini sekali lagi untuk menampilkan satu pesan yang dikembalikan.
SELECT *
FROM msdb.dbo.sysmail_event_log
WHERE log_id = 2;
Hasil (menggunakan keluaran vertikal):
log_id | 2 event_type | error log_date | 2020-08-24 02:40:53.317 description | The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2020-08-24T02:40:52). Exception Message: Could not connect to mail server. (No connection could be made because the target machine actively refused it 127.0.0.1:25).) process_id | 68 mailitem_id | 1 account_id | NULL last_mod_date | 2020-08-24 02:40:53.317 last_mod_user | sa
Saya menggunakan output vertikal dalam contoh ini sehingga Anda tidak perlu menggulir ke samping.
Periksa Level Logging Anda
Anda dapat menggunakan sysmail_help_configure_sp
prosedur tersimpan untuk memeriksa jenis pesan apa yang dicatat.
Contoh:
EXEC msdb.dbo.sysmail_help_configure_sp
@parameter_name = LoggingLevel;
Hasil:
+--------------+--------------+------------------------------------------------------------------------------+ | paramname | paramvalue | description | |--------------+--------------+------------------------------------------------------------------------------| | LoggingLevel | 2 | Database Mail logging level: normal - 1, extended - 2 (default), verbose - 3 | +--------------+--------------+------------------------------------------------------------------------------+
Dalam kasus saya, LoggingLevel
adalah 2
, yang merupakan nilai default. Setelan ini mencatat kesalahan, peringatan, dan pesan informasi.
Ubah Tingkat Logging Anda
Anda dapat menggunakan sysmail_configure_sp
prosedur tersimpan untuk mengubah level logging Anda.
Secara khusus, Anda dapat memilih LoggingLevel
dari 1
, 2
, atau 3
.
Ini mencatat sebagai berikut:
- Hanya error.
- Error, peringatan, dan pesan informasi (default).
- Error, peringatan, pesan informasi, pesan sukses, dan pesan internal tambahan.
Jika Anda sedang memecahkan masalah, Anda mungkin ingin mengubah sementara tingkat logging Anda ke 3.
Berikut ini contoh mengubah level logging menjadi 3
.
EXECUTE msdb.dbo.sysmail_configure_sp
'LoggingLevel', '3';
Setelah menjalankannya, saya dapat memeriksa LoggingLevel
saya lagi dengan sysmail_help_configure_sp
prosedur tersimpan.
EXEC msdb.dbo.sysmail_help_configure_sp
@parameter_name = LoggingLevel;
Hasil:
+--------------+--------------+------------------------------------------------------------------------------+ | paramname | paramvalue | description | |--------------+--------------+------------------------------------------------------------------------------| | LoggingLevel | 3 | Database Mail logging level: normal - 1, extended - 2 (default), verbose - 3 | +--------------+--------------+------------------------------------------------------------------------------+