在SQL Server中配置Database Mail发送邮件(下)

日期: 2009-10-11 作者:Roman Rehak翻译:曾少宁 来源:TechTarget中国 英文

在SQL Server 2005 中创建Database Mail的步骤   创建Database Mail很简单。我们可以使用Database Mail Wizard创建和管理模板和帐户,创建Database Mail安全和系统参数。在SQL Server Management Studio的“Management”节点中的“Database Mail”启动向导。我并不喜欢的是在这里没有方法可以检查Management Studio中已有的模板、帐户和设置;我们需要运行向导并选择“Modify”去查看这些已有的设置。

如果想要从一台服务器复制设置到另一台服务器就很麻烦了。这里的另一个缺点是没有……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

在SQL Server 2005 中创建Database Mail的步骤

  创建Database Mail很简单。我们可以使用Database Mail Wizard创建和管理模板和帐户,创建Database Mail安全和系统参数。在SQL Server Management Studio的“Management”节点中的“Database Mail”启动向导。我并不喜欢的是在这里没有方法可以检查Management Studio中已有的模板、帐户和设置;我们需要运行向导并选择“Modify”去查看这些已有的设置。如果想要从一台服务器复制设置到另一台服务器就很麻烦了。这里的另一个缺点是没有方法可以脚本化模板和帐户。所以,如果我们需要在多个服务器上重复相同的创建过程,我们应该运行SQL Profiler来得到用于创建Database Mail对象的命令。

  所有Database Mail对象都存储在msdb数据库。在一个用户发送邮件之前,用户的帐户必须先添加到msdb数据库的一个指定的数据库角色DatabaseMailUserRole中。如果我们使用一个非系统管理员帐户发送邮件失败时,那么就需要检查下该帐户是不是DatabaseMailUserRole角色的一个成员,如果不是就添加到该角色。

  在配置好Database Mail后,我们可以开始在T-SQL中使用sp_send_dmmail存储过程来发送邮件了。下面的存储过程接受20个以上的参数,其中在多数是可选的。下面是发送一个纯文件邮件的调用示例:

  DECLARE @subject VARCHAR(100)

  SET @subject = 'Test email. Sent time: '

  + CAST(GETDATE() AS VARCHAR(20))

  EXEC msdb.dbo.sp_send_dbmail @profile_name = 'DBMailProfile1',

  @recipients = 'roman@hotmail.com', @body = 'It worked!!!',

  @subject = @subject

  因为这里有许多难记的参数(大多数你都不会用到),我建议创建一个或多个封闭存储过程来简化电子邮件接口。Database Mail将所有发送的邮件存储在msdb数据库。我们可以运行下面的查询来查看它们:

  USE msdb

  SELECT * FROM sysmail_allitems

  ORDER BY mailitem_id DESC

  可能系统视图中最重要的字段是sent_status字段。它包含了以下4个值之一:未发送、重试中、已发送或失败。如果邮件没有发出,检查该视图以确保消息在队列中,并且sent_status的消息不是“已发送”。如果我们注意到消息是“失败”或“重试中”,右击Database Mail节点并选择“View database Mail Log”来查看更多关于错误的细节信息。

  本文阐述了Database Mail的基础,并说明了创建电子邮件的方法。相信你应该能够开始配置服务器使用这些实践特性从T-SQL和T-SQL Agent上发送电子邮件了。

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐