Nếu bạn đang cố gắng gửi thư bằng SQL Server nhưng không gửi được thư, hãy thử kiểm tra sysmail_faileditems
xem.
Ví dụ
Đây là một ví dụ về kiểm tra thư không thành công. Lưu ý rằng nó cần được chạy trên msdb
cơ sở dữ liệu.
SELECT * FROM msdb.dbo.sysmail_faileditems;
Kết quả (sử dụng đầu ra dọc):
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
Tôi đã sử dụng đầu ra dọc ở đây để bạn không cần phải cuộn sang ngang để xem tất cả các cột.
Trong trường hợp này, tôi đang hiển thị một email không thành công. Tôi thực sự có hai email không thành công nhưng tôi quyết định rằng sẽ ngắn gọn hơn khi chỉ hiển thị một kết quả.
Trong trường hợp của tôi, tôi đã sử dụng sai máy chủ thư trong mã gửi email và các email không thành công. Ngay sau khi tôi cập nhật mã để sử dụng đúng máy chủ thư, tất cả các email tiếp theo đã được gửi thành công. Tuy nhiên, điều này không thay đổi những cái đã bị lỗi và do đó, chúng vẫn nằm trong sysmail_faileditems
xem.
Bạn có thể truy vấn sysmail_unsentitems
để trả về danh sách các email chưa gửi (những email chưa được gửi, không nhất thiết là không gửi được).
Bạn cũng có thể truy vấn sysmail_sentitems
để nhận tất cả các email đã gửi.
Bạn cũng có thể truy vấn sysmail_allitems
để nhận tất cả các email (đã gửi, chưa gửi, không thành công và đang thử lại).