2009-12-06 170 views
0

我已经配置数据库邮件从SQL数据库发送简讯电子邮件。我有一个选择的用户的电子邮件,向他们发送邮件这样一个存储过程:SQL Server 2005数据库邮件错误(操作超时)

EXEC msdb.dbo.sp_send_dbmail 
@profile_name = 'ProfileName', 
@recipients = @email, 
@subject = @thesubject, 
@body = @themessage, 
@body_format = 'HTML' ; 

用于发送工作正常,表兄弟姐妹,当我发送的测试邮件配置数据库后,帐户的邮件被发送但是问题是发送多个邮件。

当前执行存储过程后表中有50封电子邮件我检查了msdb表sysmails_event_log,sysmails_faileditems和sysmails_sentitems,我发现只有第12封电子邮件被发送,其余的失败,event_log中的错误信息是:

邮件无法发送,因为邮件服务器故障的收件人。 (使用帐户1发送邮件(2009-12-01T16:55:11))异常消息:无法向邮件服务器发送邮件(操作已超时))

我检查了邮件号码。 13和laters,我没有发现他们有什么问题,所以我试着再次执行这个程序,这次它发送到第14封电子邮件,其余的失败了同样的错误,所以我改变了程序,并选择了邮件从邮件号码开始。 15 (好像它会从记录15发送到50)并进行测试,这次它发送到第13封电子邮件,我从27到50中选择并执行,再次发送到第12个邮箱。

I不明白发生了什么这里发送邮件的行为一次只能在12-14邮件范围内发送。

任何人都可以帮助我吗?

在此先感谢

回答

1

SMTP服务器位于何处?您是否检查过是否可以通过该SMTP服务器同时触发超过12封电子邮件,而不涉及SQL Server?它看起来像问题不是SQL Server,而是SMTP服务器上的某种策略。在数据库服务器和SMTP服务器之间的防火墙或其他网络设备上也可能存在某种滥用预防。您是否考虑在数据库服务器上设置SMTP服务,然后设置数据库邮件,以便它使用本地SMTP服务器而不是通过网络(并可能运行到上面提到的策略或策略中)?当然,您应该安全地设置SMTP,确保只允许来自本地计算机的连接。

+0

的SMTP服务器位于数据库服务器的同一个域和SMTP服务器可以在使用和不使用SQL Server的一次火灾超过12个电子邮件参与,我不认为有任何实物之间滥用预防数据库服务器和SMTP服务器,因为在使用数据库邮件之前我使用XPSMTP扩展过程从SQL发送邮件,它工作正常,所有电子邮件都已发送,我只切换到数据库邮件因为我需要发送大型邮件正文作为nvarchar (max),并且xpsmtp只允许nvarchar(4000)。 – Yasmine 2009-12-07 10:47:18

+0

所以我认为这个问题可能是数据库邮件而不是SMTP服务器,因为在切换到数据库邮件之前一切正常。至于使用本地SMTP服务器的解决方案,我希望这是最后的解决方案。 谢谢 – Yasmine 2009-12-07 10:55:44

+0

这是我使用数据库邮件之前的扩展过程 http://www.sqldev.net/xp/xpsmtp.htm – Yasmine 2009-12-07 10:58:20

0

我解决这个情况做两件事情:

  1. 重做数据库邮件配置文件
  2. 重新启动的Windows SMTP服务

希望工程的人谁得到了同样的情况。