博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]SQL Server 创建数据库邮件
阅读量:6453 次
发布时间:2019-06-23

本文共 2924 字,大约阅读时间需要 9 分钟。

本文转自:

一、 背景

数据库发邮件通知数据库的运行状态(状态可以通过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',1RECONFIGURE WITH OVERRIDEGOEXEC sp_configure 'database mail xps',1RECONFIGURE WITH OVERRIDEGO--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 = NULLGO--3.数据库配置文件IF EXISTS(SELECT name FROM msdb..sysmail_profile WHERE name=N'ETLErrorProfileLog')BEGIN    EXEC msdb..sysmail_delete_profile_sp    @profile_name='ETLErrorProfileLog'ENDEXEC msdb..sysmail_add_profile_sp    @profile_name = 'ETLErrorProfileLog',--profile名称    @description = '数据库邮件配置文件',--profile描述    @profile_id = nullGO--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

 

五、 参考文献

-------------------华丽分割线-------------------

作者:

出处:

版权:本文版权归作者和博客园共有

转载:欢迎转载,必须保留原文链接

邮箱:

格言:不喜欢是因为你不会 && 因为会所以喜欢

-------------------华丽分割线-------------------

 

你可能感兴趣的文章
angular-bootstrap ui-date组件问题总结
查看>>
理解Javascript参数中的arguments对象
查看>>
p2:千行代码入门python
查看>>
bzoj1106[POI2007]立方体大作战tet*
查看>>
spring boot configuration annotation processor not found in classpath问题解决
查看>>
【转】正则基础之——神奇的转义
查看>>
团队项目测试报告与用户反馈
查看>>
MyBatis(1)——快速入门
查看>>
对软件工程课程的期望
查看>>
CPU高问题排查
查看>>
Mysql中文字符串提取datetime
查看>>
CentOS访问Windows共享文件夹的方法
查看>>
IOS 与ANDROID框架及应用开发模式对比一
查看>>
由中序遍历和后序遍历求前序遍历
查看>>
JQUERY Uploadify 3.1 C#使用案例
查看>>
coursera 北京大学 程序设计与算法 专项课程 完美覆盖
查看>>
firewall 端口转发
查看>>
wndows make images
查看>>
FS系统开发设计(思维导图)
查看>>
我学习参考的网址
查看>>