2017-07-25 91 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

相关问题