现在的位置: 首页 > 综合 > 正文

SQL Server 2008数据库邮件配置及应用

2012年04月05日 ⁄ 综合 ⁄ 共 1987字 ⁄ 字号 评论关闭
数据库邮件是从 SQL Server数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可以包含来自网络中任何资源的文件。
1、数据库邮件配置
    使用SQL Server Management Studio连接到数据库服务器后,可按下面示意图一步步配置数据库邮件。
(1)、在SQL Server Management Studio的数据库实例的管理菜单下,选中数据库邮件菜单,然后邮件选择:配置数据库邮件。
clip_image002[17]
(2)、在选择配置任务页面,选择通过执行以下任务来安装数据库邮件。

clip_image004[4]
(3)、在新建配置文件界面,首先录入配置文件名及说明信息,然后点击下图所示“添加”按钮,开始添加当前配置文件对应的SMTP账户。
clip_image006[4]
(4)、按下图所示,录入SMTP账户信息,其中最重要的是服务器名称选项。若使用当前流行的邮件服务提供商的SMTP服务,则一般还需要在基本身份验证部分录入邮箱账户身份信息。
clip_image008[4]
(5)、在上一步添加完账户信息并点击确定后,新增的账户信息将列示在下图的SMTP账户列表中。一个配置文件是可以和多个账户关联的,因而可以重复前面步骤添加其它SMTP账户信息。
clip_image010[4]
(6)、在该步骤选择“公共”复选框及“默认配置文件”。
clip_image012[4]
(7)、此步骤主要是配置数据库邮件参数,若无特殊要求,默认即可。
clip_image014[4]
(8)、下图展示刚配置的信息。
clip_image016[4]
(9)、系统开始根据前面的配置信息自动配置系统。如果一切ok,将会展示类似下图信息,点击关闭完成配置。
clip_image018[4]
(10)、按照上述步骤,配置好数据库邮件后,可进行数据库邮件测试,以确认配置是否完全正确。在SQL Server Management Studio的数据库实例的管理菜单下,选中数据库邮件菜单,然后邮件选择:发送测试电子邮件…。
clip_image020[4]
(11)、在弹出的测试邮件发送配置界面,维护好相关信息后,点击“发送测试电子邮件”功能按钮开始发生邮件。
clip_image022[4]
(12)、系统对测试电子邮件进行列队以进行发送。
clip_image024[4]
(13)、如果一切顺利,过一会,一般为1分钟左右,将可以在邮箱内容收到一份主题为:“数据库邮件测试”的邮件,如下图所示。
clip_image026[4]
2、数据库邮件应用
    应用业务场景1:业务数据库数据达到一定数量级后,进行邮件发送提醒。
    使用SQL Server Management Studio连接到数据库服务器后,可按下面示意图一步步配置以创建一个作业,通过作业执行特定语句,进行邮件发送。
(1)、在SQL Server Management Studio的数据库实例的管理菜单下,选中SQL Server代理→作业菜单,右击作业菜单,然后点击“新建作业”。
clip_image028[4]
(2)、在作业属性/常规属性页,维护好作业的名称等信息。
clip_image030[4]
(3)、在作业属性/步骤属性页,维护作业步骤及作业命令。
本文示例SQL:
USE msdb 
GO 
DECLARE @cnt INT; 
DECLARE @emailBody VARCHAR(4000); 
SELECT @cnt=COUNT(*) FROM ng0002.dbo.secuser; 
IF @cnt>100 
BEGIN 
SELECT @emailBody='数据库用户表记录数已达:'+convert(varchar,@cnt) ; 
Exec dbo.sp_send_dbmail 
    @profile_name='SQLMailConfig', 
    @recipients='subscriber@126.com', 
    @subject='用户数预警', 
    @body=@emailBody 
END
clip_image032[4]
(4)、在作业属性/计划属性页,维护作业的执行计划。
clip_image034[4]
(5)、待数据库作业成功执行后,将会收到一份类似下图的邮件:
clip_image036[4]
 
应用业务场景2:将数据库查询结果以附件形式投递到指定邮箱
USE msdb
GO
Exec msdb.dbo.sp_send_dbmail
@profile_name='SQLMailConfig',
@recipients='subscriber@126.com',
@query='select logid,u_name from ng0002.dbo.secuser',
@subject='用户数预警',
@body='查询结果,详见附件',
@attach_query_result_as_file =1,--查询结果以附件形式发送
@query_attachment_filename ='查询结果.Txt'--邮件附件名称
GO
PS:
     数据库邮件发送存储(sp_send_dbmail)详细技术参数可参考以下网站:http://msdn.microsoft.com/zh-cn/library/ms190307.aspx

本文出自 “zhangkui的博客” 博客,请务必保留此出处http://zhangkui.blog.51cto.com/1796259/340557

抱歉!评论已关闭.