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中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求 ...
随机推荐
- Swift 吐槽下Swift里一个逼死强迫症的语法:中缀语法
中缀语法是OC里特有的一种,就是在函数的参数前面加一个解释词,让调用的时候明白该参数的含义 比如: -(void)processDataWithparamaA:(NSString *)paramaA ...
- UVa 7146 Defeat the Enemy(贪心)
题目链接: 传送门 Defeat the Enemy Time Limit: 3000MS Memory Limit: 32768 KB Description Long long ago t ...
- python zip()
>>> help(zip) Help on built-in function zip in module __builtin__: zip(...) zip(seq1 [, seq ...
- PHP之:PHP框架
ThinkPHP - 国内PHP框架 http://www.thinkphp.cn/. OneThink-基于tp框架开发的CMS (适于小项目) http://www.onethink.cn/. ...
- ARPSpoofing教程(三) - 捕获数据包
1: #include"pcap.h" 2: //每次捕获到数据包时,libpcap都会自动调用这个回调函数 3: void packet_handler(u_char *para ...
- NSXMLParser解析本地.xml数据(由于like7xiaoben写的太好了,我从她那里粘贴过来的)
NSXMLParser解析简要说明 .是sax方法解析 .需要创建NSXMLParser实例 (alloc) 并创建解析器 (initWithData:) 为解析器定义委托 (setDelegate: ...
- php 设计模式 例子
加载类:include("./Ren.class.php");include "./Ren.class.php"; require("./Ren.cl ...
- char *p = "abcdefg"; p[0] = p[1]出错
参考:http://blog.sina.com.cn/s/blog_5c0172280100ut4o.html 1.char *s="abc"; 看这个赋值: 右边,是" ...
- 获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址(服务器端)
<?php class GetMacAddr{ var $return_array = array(); // 返回带有MAC地址的字串数组 var $mac_addr; function Ge ...
- C#----我对坐标系的理解和图形转动
目录: 设置图形的旋转 设置坐标轴的反向 图形的旋转 参考一个文章:http://www.bccn.net/Article/kfyy/vc/jszl/200601/3008.html ; 目标:让Dr ...












