SQL Server数据库邮件配置
一、数据库邮件介绍
数据库邮件是从SQL Server数据库引擎中发送电子邮件的企业解决方案,通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可以包含来自网络中任何资源的文件。
数据库邮件使用标准的简单传输协议(SMTP)发送邮件。发送邮件进程与SQL Server隔离,在后台采用异步方式传递,以避免了对SQL Server的影响。邮件通过配置文件进行发送,配置文件中包含了邮件账号的详细信息,可配置多个配置文件,每个配置文件可包行多个账户,实现故障转移。
默认下数据库邮件是禁用的,只有在调用的时候开启;若要发送数据库邮件,必须是msdb数据库中的databasemailuserrole数据库角色成员。同时数据库会对已经发送的邮件保留副本,可随时查询。支持HTML格式发送。
二、数据库邮件配置
1、前期准备
准备两个邮件账号:账号;发件服务器;端口[ 默认25 ]。
确保在此服务器能用这两个账号发送邮件,连接外网。
2、数据库邮件配置过程
右键—配置数据库邮件—进入数据库邮件配置向导—下一步
默认下一步
输入“配置文件名称”—输入“配置文件的用途”—添加—新建账户
输入邮件账户等—输入邮件服务器信息—端口默认为25即可
输入登录帐户和密码
确定后配置第二个账户
下一步
选择公共配置文件和默认配置文件
确定系统参数:默认下一步
确定配置信息,下一步
配置完成—关闭
3、开启Database Mail XPs配置
SP_CONFIGURE 'show advanced', 1 GO RECONFIGURE GO SP_CONFIGURE 'Database Mail XPs', 1 GO RECONFIGURE GO4、发送测试邮件
右键—发送测试邮件
也可通过存储过程发送测试邮件
USE msdb GO EXEC sp_send_dbmail @profile_name='sqlmonitor',--配置文件名称 @recipients='test1@fzcyjh.com',--发送邮件账号 @subject='数据库邮件测试',--主题 @body='这是从HUANGCHUANHUI 上的数据库邮件发出的测试电子邮件。'--内容
三、扩展知识
1、数据库邮件的主要组件
数据库邮件配置和安全对象:1、配置文件;2、账户;3、配置存储过程[sp_send_dbmail]。邮件账户包含电子邮件服务器的信息,邮件账户密码信息等;配置文件是多个账户的集合;配置文件同时提供自动故障转移,为了增强安全性,配置文件可以是公共的,也可以是专用的;若是公共的配置文件,只要拥有databasemailuserrole角色的成员即可调用;若为专用的,只能是制定的数据库用户才能使用,需要sysadmin授权。
Msdb数据库:是数据库邮件主机数据库,包含数据库邮件的存储过程和消息处理对象,必须在msdb中启用Service Broker。不过数据库邮件不使用Service Broker网络。
外部执行程序DatabaseMail.exe:当有电子邮件要处理时,数据库邮件使用 Service Broker 激活来启动该外部程序。启动后,使用windows身份验证连接到SQL Server处理电子邮件;如果无法与SQL Server通信,则将记录在windows应用程序事件日志中。
2、数据库邮件发送基本过程
下图为数据库邮件基本体系结构
数据库邮件的设计基于使用 Service Broker 技术的排队体系结构。
当用户执行 sp_send_dbmail 时,存储过程将向邮件队列中插入一项,并创建一条包含该电子邮件信息的记录。
在邮件队列中插入新项将启动数据库邮件外部进程 (DatabaseMail.exe)。该外部进程会读取电子邮件的信息并将电子邮件发送到相应的一台或多台电子邮件服务器。发送后,该外部进程还会在状态队列中插入一项,来指示发送操作的结果。在状态队列中插入新项将启动内部存储过程,该过程将更新电子邮件信息的状态。
除存储已发送(或未发送)的电子邮件信息外,数据库邮件还在系统表中记录所有电子邮件的附件。
只有 msdb 数据库中的 DatabaseMailUserRole 的成员可以执行 sp_send_dbmail。
SQL Server数据库邮件配置的更多相关文章
- SQL SERVER 数据库邮件配置
1.简单了解数据库邮件的概念和使用的传输协议及系统体系: 数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案.通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件.邮件中 ...
- SQL Server 数据库邮件 配置
在 Sqlserver 上尝试配置 数据库邮件,用 smtp.qq.com 来发送邮件 如下配置后,发送测试邮件遇到错误 “由于邮件服务器故障,无法将邮件发送给收件人. (使用帐户 1 (2015-1 ...
- SQL Server数据库邮件发送异常案例
最近遇到两起关于SQL Server数据库邮件发送异常的案例,这些问题也有点意思,顺便记录一下.方便以后遇到类似问题的人参考,不要被这些问题弄得抓狂! 案例1:我们一台数据库服务器突然发送邮件都不 ...
- Windows 2008服务器环境PHP连接SQL Server数据库的配置及连接方法
背景: PHP程序常用的数据库是Mysql数据库,但是由于实际项目需要,要求PHP网站连接SQL Server数据库查询一些必要信息.因此,本文就来给大家介绍一下如何安装及配置PHP扩展,可以实现PH ...
- SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
原文:SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件 从2005开始,就引入了"数据库邮件"功能.并且取代SQLMail.原有SQLMail ...
- 在 SQL Server 2005 中配置数据库邮件
一. SQL Server发邮件原理和组件介绍: 数据库邮件有4个组件:配置文件.邮件处理组件.可执行文件以及“日志记录和审核组件”. l 配置组件包括: 1)数据库邮件帐户包 ...
- 【原创】SQL Server Job邮件详细配置
1 简介 SQL Server 代理具有发送电子邮件的功能.您可以配置 SQL Server 代理邮件,使其在出现下列情况时向预定义的操作员发送电子邮件: 警报触发时.可以配置警报,以针对所发生的特定 ...
- 此操作只能由 SQL Server 中拥有配置数据库读取权限的用户在已加入到某个服务器场的计算机上执行
错误提示:此操作只能由 SQL Server 中拥有配置数据库读取权限的用户在已加入到某个服务器场的计算机上执行.若要将此服务器连接到服务器场,请使用 SharePoint 产品配置向导,该向导可从 ...
- SQL Server数据库定时自动备份
SQL Server 数据库定时自动备份[转] 在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求 ...
随机推荐
- VS2010生成安装包
项目的第一个版本出来了,要做个安装包,之前没有做过,网上看看贴,写了一个,总结下,根据本项目的需要,没有写的太复杂,可能还不是很完善,仅作参考. 首先在打开 VS2010 > 文件 & ...
- HDU 5920 Ugly Problem
说起这道题, 真是一把辛酸泪. 题意 将一个正整数 \(n(\le 10^{1000})\) 分解成不超过50个回文数的和. 做法 构造. 队友UHC提出的一种构造方法, 写起来比较方便一些, 而且比 ...
- HDU 3038 How Many Answers Are Wrong(带权并查集)
传送门 Description TT and FF are ... friends. Uh... very very good friends -________-b FF is a bad boy, ...
- ThreadPoolExecutor机制
一.概述 1.ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务: 2.Execu ...
- 高可用与负载均衡(1)之linux系统的数据链路层负载均衡
preface 在蓝厂就职到时候,每台缓存服务器都能够跑到2G的流量,这么大的流量,有人会问,服务器是不是安装的万兆网卡,no no no,仅仅是3张千兆网卡绑定在一块.万兆网卡的服务器少见,大多数都 ...
- matlab连接sql数据库
最近项目还涉及到matlab连接数据库,下面我就记录如何进行配置使得matlab能够连接sql数据库.由于最近工程做的多一些,所以分享的都在工程配置上,当初为了这些配置可是反复卸载与重装,算法其实也有 ...
- AngularJs:String类型和JSON相互转换
最近一周做了一个页面,制作的过程中遇到各种问题,从中可以看出本人的js基础还不够扎实,angularjs也只是刚入门的水平,现在将制作过程中遇到的问题一一汇总,方便以后查阅. 一.String类型和J ...
- ubuntu下samba服务器的安装与配置
参考网址:http://jingyan.baidu.com/album/00a07f38b9194082d028dc08.html?picindex=9 sudo service smbd resta ...
- Lua 之面向对象编程
Lua 之面向对象编程 Lua并不是为面向对象而设计的一种语言,因此,仅从原生态语法上并不直接支持面向对象编程,但Lua的设计中仍然包含了很多面向对象的思想,理解它们也更有助于理解Lua自身的一些高级 ...
- Yii2.0-生成二维码实例
原文地址:http://www.yii-china.com/post/detail/19.html












