为什么Sql Server代理作业会发送重复电子邮件?

4

我有一些 Sql Server 代理作业,每天会发送邮件,每个邮件包含一个 Excel 文件。它们在许多方面都相似;它们成功完成步骤,并且使用 sp_send_dbmail 过程没有问题。

    USE msdb
    GO
    DECLARE  @tablename varchar(200)
    set @tablename = 'MyTable' + '.xls'
    EXEC sp_send_dbmail 
    @profile_name = 'x',
    @recipients = 'example@abc.com',
    @copy_recipients = ' example2@abc.com',
    @subject = 'Excel Report',
    @body =  'File attached.',
    @file_attachments =  @tablename

然而,有些工作会发送两封电子邮件。我已经检查了每天运行一次的作业,并且 sp_send_dbmail 过程只被调用了一次。我已禁用并重新启用了该作业,仍然收到了重复的邮件。我已删除并重新创建了该作业,但没有任何改变。真的很有趣,其他类似的作业都能很好地工作,而另一个却会发送两次邮件。
对于这个作业发送重复邮件的原因有什么想法吗?

很难为某人提供任何可行的答案,没有看到被调用或存储过程的代码...也许发布一些代码会有所帮助。另外,您是否考虑过可能有两个作业实例正在运行..? - MethodMan
经过长时间的搜索,我发现问题出在工作发送邮件的邮件组上。通常情况下,工作和邮件组都没有问题,但是当我将邮件组删除并逐个编写人员的电子邮件地址时,问题得到了解决... 我仍然不确定为什么它没有正确地发送;也许是因为邮件组包含另一个邮件组..? - betty.88
我想更新的信息是,如果收件人的电子邮件地址不再使用,这可能是作业重复发送的另一个原因。 最后事情变得更清晰了。 - betty.88
2个回答

2

“necro bump”。

我们曾经遇到过这个问题,也是由于收件人列表中的电子邮件地址引起的。

如果我们包含类似于- 12a34b45c.abcd.com@amer.teams.ms

的内容,那么一分钟后会发送第二封电子邮件。


1
帮助我找到解决方案的好提示。 - Circle Hsiao

0

从Outlook向所有收件人和抄送发送测试邮件。
您的SMTP中继会通知您这些无效的电子邮件地址,例如 enter image description here 或者 enter image description here 在确定了无效的电子邮件后,您可以删除/替换它们,以便其余的收件人不再收到重复的邮件。

您还可以考虑关闭SQL Server电子邮件重试功能。

EXECUTE msdb.dbo.sysmail_configure_sp 'AccountRetryAttempts', '0' ;

但清理无效的电子邮件会是更好的做法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接