一、前言
数据库邮件是一种通过 Microsoft SQL Server 2005 Database Engine 发送电子邮件的企业解决方案。比如当我在家里睡觉的时候,我也想密切关注咱公司数据库咋样了,于是我笔记本冒着被烧坏的风险,开着监听者服务器给我发来的net send或者是邮件,当一有邮件的时候,Gmail有声音提示的.然后火速看下是不是出啥问题了,当然也可以使用数据库邮件在MSSQL中像我们的客户发送一些广告或者其他什么的.也不用担心上层开发群发系统的开发时间了,减少了开发成本,而且数据库邮件是基于队列概念的,所以未发送的邮件是在队列中,等待下一次的安排,这方面可以关注下数据库邮件和Service Broker的概念.
二、数据库邮件的特性
可靠性
现在MSSQL 2005中,不需要像SQL Mail在2000中的方案一样使用扩展MAPI来实现发送邮件,不需要安装MAPI客户端就能发送邮件,他使用SMTP协议来发送邮件.
为了完整的演示数据库邮件,我就自己搭建POP3和SMTP环境了.
首先我们来了解下SMTP
SMTP (简单邮件传输协议):控制电子邮件通过Internet 传送到目标服务器的方式。SMTP 在服务器之间接收和发送电子邮件。
也就是说,我们通过TCP/IP簇里面的SMTP来发送接受电子邮件,所以SMTP是我们邮件的传输载体.
POP3: 邮局协议 3是检索电子邮件的标准协议。POP3 协议控制 POP3 电子邮件客户端和存储电子邮件的服务器之间的连接。POP3 服务使用 POP3 协议将电子邮件从邮件服务器检索到 POP3 电子邮件客户端。
也就是说,POP3讲SMTP发来的邮件下载到我们的电子邮件客户端比如Gmail或者Outlook
我们看看上图
Step1-3:someone@example.com客户端在上网,他发送了一个邮件,通过SMTP协议载送这他的邮件,ISP解析了邮件的域以后转到example.com的服务器.
Step4:继续使用SMTP传输着我们的Email.
Step5:发送到IIS中SMTP虚拟服务中域的制定的投递目录,图中是你看到的默认路径.
Step6:POP3提供了3种验证方式让你登录自己的邮箱,比如AD(Active Directory),匿名,以及密码身份认证.
Step7:验证成功的话,你就可以使用POP3将邮件下载到自己的客户端了
好了,为了更好下面课程的继续你需要如下的环境:
DB:MS SQL SERVER 2005 (我使用的是企业版)
OS:Windows 2003(两台机器,我使用的是虚拟机进行的桥接),安装POP3服务,记得放碟子,或者使用系统的ISO来安装服务.2008的话,可以直接Add features了. 呵呵.对了还要开启SMTP服务,因为条件原因必须使用SMTP和POP3在一台服务器.
1. 开启SMTP服务:开始菜单->运行->net start smtpsvc->成功.
2. 打开POP3服务:开始菜单->程序->管理工具->POP3服务.
如图,然后右键POP3服务,单击连接:
输入自己计算机的名字,如果默认有了,就是像我的一样显示Terry
3. 然后在自己的计算机名字下(我的是Terry),然后新建->域->填写mssql.com(可以自己写) .
4. 选中mssql.com然后,添加邮箱,添加了两个邮箱,分别是1和2,密码自己设置.
其实现在的邮箱名就是 1@mssql.com,和2@mssql.com
那么现在我们的
Pop3服务器就:terry(我的计算机名)
SMTP服务器:terry(也是我的)
玩过Outlook的人知道,设置这两个,和邮件客户端 帐号密码就能收发邮件呢.
5. 配置客户端机器,现在的POP3和SMTP服务器都已经配置好了:
按一下帐号设置中的其他设置,选择
然后就可以像2@mssql.com发送邮件呢.客户机也进行相同的设置就好了,如果一切正常那么恭喜,应该可以获取邮件呢.如果没成功,在留言里面发问吧.至于为什么不用Exchange主要是方便配置啦.
可靠性的第2点是,可以添加多个SMTP服务器在数据库邮件配置中,可以添加多个账户,也就是说如果第一个SMTP服务器失败的话,他会推到下一个来执行.
灵活性
可以直接使用sp_send_dbmail来发送数据库邮件
可以使用多个数据库邮件配置文件
可以设置多个帐号来发送邮件,比如1@mssql.com,2@mssql.com
安全性
可以控制附件大小,文件扩展名,以及在SQL Server中的权限控制(具有msdb中的DatabaseMailUserRole才能发送邮件)
三、结语
数据库邮件还是有很多帮助的,首先我们可以利用数据库邮件定期的通知一些DBA外出人员查看 其相应的系统信息,然后我们可以在一些业务中使用数据库邮件直接的批量发送邮件给我们的客户,最后还可以作为警告发送一些邮件给DBA.总之场景自己可以多多的设想.本文的话先说了说环境的配置,数据库邮件的具体内容,看二吧