从SQL Server 2005/2008发送电子邮件

时间:2015-09-17 13:44:49

标签: sql sql-server tsql email

我必须从SQL Server 2005或2008发送电子邮件。我过去已经使用其他存储过程(sp_send_html_mail)和复杂的配置/激活完成了此操作。是否有标准的内置存储过程通过SMTP(而不是MAPI / CAPI / Outlook配置文件)发送电子邮件?我在这个主题上找到了sp_send_dbmail,但不确定它是唯一的,可能存在哪些安全问题(垃圾邮件除外)?

1 个答案:

答案 0 :(得分:1)

是的,sp_send_dbmail是用于SQL Sever 2005和2008的版本。

您需要确保已在服务器上配置它。我做了这样的配置已经有一段时间了,但是如果内存正确地为我服务,它默认是关闭的。查看该过程的MS文档Configure Database Mail。设置SMTP服务器也是可行的。那里有很多选择,所以给它一个彻底的评论。

如果您担心不必要地使用该sp,您可以使用角色和/或执行权限来限制对它的访问。从有关dbmail疑难解答的MS文档:

  

要发送数据库邮件,用户必须是msdb数据库中的用户和a   msdb数据库中DatabaseMailUserRole数据库角色的成员。   要将msdb用户或组添加到此角色,请使用SQL Server Management   Studio或为该用户或角色执行以下语句   需要发送数据库邮件。

EXEC msdb.dbo.sp_addrolemember @rolename = 'DatabaseMailUserRole'
    ,@membername = '<user or role name>';
GO