2017-07-25 35 views
0

我正在使用msdb.dbo.sp_send_dbmail發送電子郵件。 有時郵件不發送。我收到了失敗的電子郵件列表。如何重新發送所有失敗的電子郵件(msdb.dbo.sp_send_dbmail)

SELECT TOP 10 * from msdb.dbo.sysmail_event_log 


log_id event_type log_date process_id mailitem_id account_id last_mod_date last_mod_user 
9022 error 50:15.9 5608 20428 NULL 50:15.9 sa 
9023 error 51:23.3 5608 20428 NULL 51:23.3 sa 

現在,我想重新發送所有在sysmail_event_log表中可用的失敗電子郵件。

如何重新發送所有失敗的電子郵件?

+1

[這裏你去(HTTP:// WWW。 pertell.com/sqlservings/archive/2012/04/resending-failed-emails-through-sp_send_email/) –

回答

1

使用以下查詢發回失敗的項目。
或者使用從msdb.dbo.sysmail_faileditems於各行的光標在同一查詢

DECLARE @to  varchar(max) 
DECLARE @copy varchar(max) 
DECLARE @title nvarchar(255) 
DECLARE @msg nvarchar(max) 
SELECT @to = recipients, @copy = copy_recipients, @title = [subject], @msg = body 
FROM msdb.dbo.sysmail_faileditems 
WHERE mailitem_id = 56299 
EXEC msdb.dbo.sp_send_dbmail 
@recipients = @to, 
@copy_recipients = @copy, 
@body = @msg, 
@subject = @title, 
@body_format = 'HTML'; 

參考

resending-failed-emails-through-sp_send_email
CURSOR

相關問題