[转]SQL Server 创建数据库邮件
本文转自:http://www.cnblogs.com/gaizai/p/3358958.html
一、 背景
数据库发邮件通知数据库的运行状态(状态可以通过JOB形式获取)和信息,达到预警的效果。
二、 基础知识
msdb系统数据库保存有关Job,Database Mail,Nodifyication等等之类信息的。MSSQL2005之后的邮件功能,使用了Services Broker进行了队列处理。然后使用外部进程,这个可以在配置成功Mail以后查看任务管理器中的进程。
另外 sp_send_dbmail是手动发送邮件的存储过程,我们必须显示的赋值才能发送。
三、 图形界面方式创建数据库邮件
下面就以SSMS的图形界面介绍如何创建数据库邮件;

(Figure1:数据库邮件)

(Figure2:以步骤形式创建)

(Figure3:创建配置文件名)

(Figure4:添加Email帐号)
这里设置的Email信息是表示之后就以这个Email帐号发送邮件,这里的服务器名称填写的是smtp.126.com,端口为25,你需要通过下面的方式测试这个地址是否可以访问。如果不通有可能是你机器防火墙的问题。

(Figure5:测试ping)

(Figure6:测试telnet)

(Figure7:配置文件与邮件对应关系)
这里你可以添加多个Email帐号,在失败的时候会使用下一个用户尝试发送。

(Figure8:公共配置文件)

(Figure9:系统尝试,不需要修改)

(Figure10:成功界面)

(Figure11:成功发送邮件)
四、 数据库邮件相关脚本

--脚本创建数据库邮件
--1.开启数据库邮件
EXEC sp_configure 'show advanced options',1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'database mail xps',1
RECONFIGURE WITH OVERRIDE
GO --2.创建邮件帐户信息
EXEC msdb..sysmail_add_account_sp
@ACCOUNT_NAME ='ETLErrorMailLog',--邮件帐户名称
@EMAIL_ADDRESS ='******@126.com',--发件人邮件地址
@DISPLAY_NAME ='系统管理员',--发件人姓名
@REPLYTO_ADDRESS =NULL,
@DESCRIPTION = NULL,
@MAILSERVER_NAME = 'SMTP.126.COM',--邮件服务器地址
@MAILSERVER_TYPE = 'SMTP',--邮件协议
@PORT =25,--邮件服务器端口
@USERNAME = '******@126.com',--用户名
@PASSWORD = '******',--密码
@USE_DEFAULT_CREDENTIALS =0,
@ENABLE_SSL =0,
@ACCOUNT_ID = NULL
GO --3.数据库配置文件
IF EXISTS(SELECT name FROM msdb..sysmail_profile WHERE name=N'ETLErrorProfileLog')
BEGIN
EXEC msdb..sysmail_delete_profile_sp
@profile_name='ETLErrorProfileLog'
END EXEC msdb..sysmail_add_profile_sp
@profile_name = 'ETLErrorProfileLog',--profile名称
@description = '数据库邮件配置文件',--profile描述
@profile_id = null
GO --4.用户和邮件配置文件相关联
EXEC msdb..sysmail_add_profileaccount_sp
@profile_name = 'ETLErrorProfileLog',--profile名称
@account_name = 'ETLErrorMailLog',--account名称
@sequence_number = 1--account 在profile 中顺序
GO --5.1发送简单文本的邮件
EXEC msdb..sp_send_dbmail
@profile_name = 'ETLErrorProfileLog',--profile名称
@recipients = '******@qq.com',--收件人
@subject = 'Test title this is test ',--邮件标题
@body = N'数据库邮件测试',--邮件内容
@body_format = 'HTML'--邮件格式
GO --5.2发送包含查询的邮件
EXEC msdb..sp_send_dbmail
@profile_name = 'ETLErrorProfileLog',
@recipients = '******@qq.com',
@subject = '查询结果',
@query = 'SELECT * FROM msdb.dbo.sysmail_faileditems'
GO --5.2发送包含附件的邮件
EXEC msdb..sp_send_dbmail
@profile_name = 'ETLErrorProfileLog',
@recipients = '******@qq.com',
@subject = '包含附件',
@body = '有附件,请查收',
@file_attachments = 'c:\a.txt'
GO --5.3发送查询作为附件的邮件
EXEC msdb..sp_send_dbmail
@profile_name = 'ETLErrorProfileLog',
@recipients = '******@qq.com',
@subject = '查询结果',
@body = '查询结果在附件中',
@query = 'SELECT * FROM msdb.dbo.sysmail_faileditems',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'a.txt'
GO

五、 参考文献
SQL Server:在 SQL Server 2005 中配置数据库邮件,发送邮件
SQL Server Reporting Services一步步实现邮件订阅
-------------------华丽分割线-------------------
作者:听风吹雨
版权:本文版权归作者和博客园共有
转载:欢迎转载,必须保留原文链接
格言:不喜欢是因为你不会 && 因为会所以喜欢
-------------------华丽分割线-------------------
[转]SQL Server 创建数据库邮件的更多相关文章
- SQL Server 创建数据库邮件
一. 背景 数据库发邮件通知数据库的运行状态(状态可以通过JOB形式获取)和信息,达到预警的效果. 二. 基础知识 msdb系统数据库保存有关Job,Database Mail,Nodifyicati ...
- SQL Server 创建数据库快照
创建数据库快照: 必须在create database 命令中包括源数据库的每一个数据文件,原始逻辑名,新物理名与路径, 不能指定其他属性 create database db_snapshot_na ...
- SQL Server配置数据库邮件
需求描述 在生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,可以以发邮件告知,邮件作为一种非常便利的预警实现方式,在及时性和易用性方面也有着不可替 ...
- SQL Server 创建数据库
创建数据库有两种方式: 方式1-图形化界面创建: 1. 鼠标右击“数据库”,然后点击新建数据库 2.设置常规选项卡 2.1 给数据库命名,一般多个单词要用下划线连接,不建议用空格,如Test_DB. ...
- sql server 脚本创建数据库邮件
sql server 脚本创建数据库邮件代码: --脚本创建数据库邮件 --1.开启数据库邮件 RECONFIGURE WITH OVERRIDE GO RECONFIGURE WITH OVERRI ...
- 如何创建和还原SQL Server 2005数据库?
在还原SQL Server 2005数据库文件之前,建议先把要还原的数据库文件复制粘贴到某个盘的根目录下,这样便于一会儿找到相关的文件,比如C盘. 先打开SQL Server 2005的Microso ...
- 如何创建和还原SQL Server 2000数据库?
说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,虽然现如今SQL Server 2000软件早已经过时了,但仍然有一部分人在使用它,尤 ...
- 使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)
在实际开发中,可能很少人会手写sql脚本来操作数据库的种种.特别是微软的MS SQL Server数据库,它的SQL Server Management Studio对数据库的图形化操作极致简便,从而 ...
- sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解
介绍了sql server 2008 数据库管理系统使用SQL语句创建登录用户步骤详解 --服务器角色: --固定服务器角色具有一组固定的权限,并且适用于整个服务器范围. 它们专门用于管理 SQL S ...
随机推荐
- python基础(1)---python简介
一.python简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.目前Python已经成为实际上除了中国最流行的开发语 ...
- poj 3264(RMQ或者线段树)
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 42929 Accepted: 20184 ...
- Palindrome Partitioning——回溯算法的又一经典
Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...
- hive的窗口函数1
Hive中提供了越来越多的分析函数,用于完成负责的统计分析.抽时间将所有的分析窗口函数理一遍,将陆续发布.今天先看几个基础的,SUM.AVG.MIN.MAX.用于实现分组内所有和连续累积的统计. 1. ...
- mysql部署后无法远程连接的原因(错误代码10061),服务监听127.0.0.1和0.0.0.0的区别
在Ubuntu上部署mysql服务并添加了一个非root用户后,发现无法远程连接, Navicat连接mysql出现2003——can't connect to mysql server on loc ...
- PHP PDO类
<?php //数据库连接类,不建议直接使用DB,而是对DB封装一层 //这个类不会被污染,不会被直接调用 class DB { //pdo对象 private $_pdo = null; // ...
- linux 进程命令小结
top:动态查看进程的变化 ps:将某个时间点的进程运行情况选取下来 ps -l :仅查看自己的bash相关进程 ps -aux :查看系统所有的进程 pstree :列出目前系统上面所有的进程树的相 ...
- Codeforces 1099 B. Squares and Segments-思维(Codeforces Round #530 (Div. 2))
B. Squares and Segments time limit per test 1 second memory limit per test 256 megabytes input stand ...
- XPath语法和CSS选择器介绍
XPath语法 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历.XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 ...
- python 去掉换行符或者改为其他方式结尾的方法(end='')
输入参数不换行,就是打印之后不换行,在python2.7中使用 "," >>>def test(): print 'hello', print "wor ...