SQL Server Database Mail配置指南

参考文献:

1.圖文教你怎樣配置Database Mail+JOB(MS_SQL2005以上版本)(按照这个教程完成配置)

2.SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件(官方教程,从老外那边翻译过来的,在smtp配置上没有文献1有价值)

3.配置SQL Server Job运行成功或失败时发送电子邮件通知

正文

database mail配置

具体可以参考文献1,配置的重点是邮件的smtp服务器配置,具体参考如下图

1.在Outgoing mail server(SMTP)中,email address地址就是你用来给别人发送邮件的数据库邮件地址。而server name则根据每个邮件服务器来具体填写,配置过outlook的人会很熟悉,这里填写smtp.163.com。具体的端口号我用google查了一下,却是是25。

2.在下面的SMTP Authentication配置,User name是邮件地址,带有@163.com。password就是邮件密码。

配置SQL Server Agent的Alert System

前面database配置成功以后,我们发送测试邮件成功。但是还是不能做到在作业成功完成之后发送通知信息。

1.我们首先在SQL Server Agent->Operator下创建操作者,如下图所示,填写操作者姓名(Name)以及邮件地址(E-mail name),其他的不需要填写。

2.为作业(job)指定警报器,如下图所示。右键Job-BackupDatabase选择属性,然后再Notification选项卡中指定操作者,我们这里选择前面创建的operator:xw,条件是当这个job成功之后给操作者发送通知。

3.右键作业,选择“start job at step”。job可以成功执行,但是我们并没有收到邮件,这是为什么?那么我们查看job的执行log,如下图所示;

从上图倒数第二条log日志中我们发现有一个错误:NOTE:Failed to notify 'xw' via email。之所以会出现这样的错误,是因为我们没有配置SQL Server Agent的Alert System。我们之前配置的只是database email,但是并不是sql server的email。我们可以通过配置SQL Server Agent的Alert System来指定使用database email来发送通知信息。如下图所示:

如上图所示,我们在Alert System中Enable mail profile,然后选择database mail。这样就可以在作业执行成功之后发送通知信息了。

测试

右键备份数据库的作业,选择start job at step。在成功执行完job以后,我们发现job日志中没有了NOTE:Failed to notify 'xw' via email。并且xw这个operator的邮箱中也收到了操作成功的信息。邮件信息如下:

JOB RUN:    'Job-BackupDatabase' was run on 2012/6/26 at 16:32:46
DURATION:    0 hours, 0 minutes, 1 seconds
STATUS:     Succeeded
MESSAGES:    The job succeeded.  The Job was invoked by User xxxx.  The last step to run was step 1 (Setp1-exec tsql).
posted @ 2012-06-26 15:37  xwdreamer  阅读(4650)  评论(0编辑  收藏  举报