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