MSSQL数据库邮件系列一(环境搭建)
MSSQL数据库邮件系列一(环境搭建)
一、前言
数据库邮件是一种通过 Microsoft SQL Server 2005 Database Engine 发送电子邮件的企业解决方案。比如当我在家里睡觉的时候,我也想密切关注咱公司数据库咋样了,于是我笔记本冒着被烧坏的风险,开着监听者服务器给我发来的net send或者是邮件,当一有邮件的时候,Gmail有声音提示的.然后火速看下是不是出啥问题了,当然也可以使用数据库邮件在MSSQL中像我们的客户发送一些广告或者其他什么的.也不用担心上层开发群发系统的开发时间了,减少了开发成本,而且数据库邮件是基于队列概念的,所以未发送的邮件是在队列中,等待下一次的安排,这方面可以关注下数据库邮件和Service Broker的概念.
二、数据库邮件的特性
l 可靠性
现在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服务.


3. 然后在自己的计算机名字下(我的是Terry),然后新建->域->填写mssql.com(可以自己写) .
4. 选中mssql.com然后,添加邮箱,添加了两个邮箱,分别是1和2,密码自己设置.
其实现在的邮箱名就是 1@mssql.com,和2@mssql.com
那么现在我们的
Pop3服务器就:terry(我的计算机名)
SMTP服务器:terry(也是我的)
玩过Outlook的人知道,设置这两个,和邮件客户端 帐号密码就能收发邮件呢.
5. 配置客户端机器,现在的POP3和SMTP服务器都已经配置好了:

只要在一个网段就OK的,不过要和注意DNS服务器要设置成服务器的IP地址.比如我这里的话就是192.168.3.155啦.
最后就是登录Microsoft Outlook呢.
打开邮件客户端以后,新添加一个帐户在pop3和SMTP服务器都写上自己主机的IP地址或者主机名,然后写入你刚才在pop3中给自己设置的帐号密码,同时发取消 要求SPA进行登录.
在 工具->帐号设置 双击你的帐号:


可靠性的第2点是,可以添加多个SMTP服务器在数据库邮件配置中,可以添加多个账户,也就是说如果第一个SMTP服务器失败的话,他会推到下一个来执行.
l 灵活性
可以直接使用sp_send_dbmail来发送数据库邮件
可以使用多个数据库邮件配置文件
可以设置多个帐号来发送邮件,比如1@mssql.com,2@mssql.com
l 安全性
可以控制附件大小,文件扩展名,以及在SQL Server中的权限控制(具有msdb中的DatabaseMailUserRole才能发送邮件)
三、结语
数据库邮件还是有很多帮助的,首先我们可以利用数据库邮件定期的通知一些DBA外出人员查看 其相应的系统信息,然后我们可以在一些业务中使用数据库邮件直接的批量发送邮件给我们的客户,最后还可以作为警告发送一些邮件给DBA.总之场景自己可以多多的设想.本文的话先说了说环境的配置,数据库邮件的具体内容,看二吧
如果没有问题的话,可以继续下面的教程,先休息休息,呵呵J…
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现