6

请问xp_sendmailsp_send_dbmailproc有什么区别?它们都向指定的收件人发送电子邮件,其中可能包括查询结果集附件......

有什么区别?

4

3 回答 3

16

xp_sendmail需要在服务器上安装 MAPI 客户端,例如 Outlook。这是 SQL Server 2000 及更早版本的唯一选项。

sp_send_dbmail是一个简单的 SMTP 解决方案,为 SQL Server 2005+ 添加

sp_send_dbmail好得多。

于 2009-08-01T13:21:40.400 回答
7

两者之间的另一个区别是,如果事务回滚,则使用 sp_send_dbmail() 发送的电子邮件将回滚(不发送)。使用 xp_sendmail() 发送的电子邮件不会发生这种情况。

因此,如果您希望无论交易的最终结果如何都发送电子邮件,您需要使用 xp_sendmail()。

如果 SP 无法完成处理,我会发送电子邮件通知用户。当然,我在那次事件中回滚了交易。当我切换到 sp_send_dbmail() 时,正在回滚的事务(我想从中获取电子邮件通知的事务)停止发送电子邮件。

于 2011-03-02T21:03:10.290 回答
0

我们不控制调用代码 - 它已关闭并在事务中调用 sp。我们需要 SQL Server 中的一项功能来直接发送或刷新邮件队列。

于 2017-06-28T17:29:25.443 回答