Sql sp_send_dbmail继续发送电子邮件
我创建了一个SP,用于重建/重新组织索引 如果发生错误,sp_send_dbmail会通知我该错误。电话是这样的Sql sp_send_dbmail继续发送电子邮件,sql,sql-server,sql-server-2008-r2,sp-send-dbmail,Sql,Sql Server,Sql Server 2008 R2,Sp Send Dbmail,我创建了一个SP,用于重建/重新组织索引 如果发生错误,sp_send_dbmail会通知我该错误。电话是这样的 EXEC MSDB.DBO.sp_send_dbmail @profile_name=@profile_name, @recipients = 'email@domain.com', @body=@Message, @body_format='TEXT', @Subject=@Subject; 上周,工作顺利,我通过电子邮件收到了
EXEC MSDB.DBO.sp_send_dbmail
@profile_name=@profile_name,
@recipients = 'email@domain.com',
@body=@Message,
@body_format='TEXT',
@Subject=@Subject;
上周,工作顺利,我通过电子邮件收到了错误。但昨天晚上,当一个错误发生时,他发送了一封电子邮件,现在却在连续发送同一封电子邮件。在作业活动监视器上,作业已完成。
我执行了sp_who2以查找是否有什么东西在运行我的sp,但什么也没有出现。
重新启动服务器,继续发送相同的电子邮件
有人能帮我吗
EDIT1:
我已经执行了
select count(*), sent_status
from msdb.dbo.sysmail_mailitems
where send_request_date > '20150116'
GROUP BY sent_status
发现有100万封未发送的电子邮件,20万封未重试,30万封未发送。所以执行
EXECUTE msdb.dbo.sysmail_delete_mailitems_sp @sent_before = Null,
@sent_status = 'unsent';
希望解决这个问题。但是电子邮件一直被插入,准备发送。。。再次执行第一次查询,现在有1封电子邮件未发送
执行时
SELECT TOP 100 * FROM msdb.dbo.sysmail_log ORDER BY log_date DESC
抛出消息:
Error: 14667, Severity: 16, State: 1. (Params:). The error is printed in
terse mode because there was error during formatting. Tracing, ETW,
notifications etc are skipped.
而且
mailitem_id on conversation 39EBD9CC-3C9D-E411-8ACD-782BCB32DC87 was not
found in the sysmail_send_retries table. This mail item will not be sent.
好吧,这似乎已经解决了,在用sysmail\u delete\u mailitems\u sp删除电子邮件之后,一些电子邮件到达了收件箱,但现在已停止检查这些sql邮件表,以查看错误是否存在于数据库或邮件服务中:
按日志日期描述从msdb.dbo.sysmail\u日志顺序中选择TOP 100*,按发送日期描述从msdb.dbo.sysmail\u邮件顺序中选择TOP 100*