邮件设置为了方便查看定时任务执行是否成功,同时能够及时发现存储过程中抛出的异常,采用发送邮件的方式来提醒这些问题。
邮件服务器名称:smtp.qq.com 端口号:587 开启POP3/SMTP服务,产生第三方客户端授权码说明
邮件采用QQ邮件,由于QQ邮件服务器要求安全链接(SSL),因此采用587端口,而不是25。具体设置如下:
步骤1.进入QQ邮箱,找到设置>账户>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
2.开启POP3/SMTP服务,点击“生成授权码”,这会让发送短信验证
3.保存生成的授权码,这是在第三方软件上用的密码 sqlServer数据库配置
数据库邮件配置 sqlServer代理 警报系统配置 *** 作员配置 Job配置说明
通过图形界面配置邮件信息,其实通过数据库提供的存储过程配置是一样的,邮件所用到表在msdb库中,具体 *** 作如下表:
序号 | 表名称 |
---|---|
1 | sysmail_account |
2 | sysmail_attachments |
3 | sysmail_attachments_transfer |
4 | sysmail_configuration |
5 | sysmail_log |
6 | sysmail_mailitems |
7 | sysmail_principalprofile |
8 | sysmail_profile |
9 | sysmail_profileaccount |
10 | sysmail_query_transfer |
11 | sysmail_send_retrIEs |
12 | sysmail_server |
13 | sysmail_servertype |
一、数据库邮件配置
1.管理>数据库邮件>邮件配置数据库邮件
2.进入配置向导,点击下一步
如果为第一次配置,就选择第一选项就行,在点击下一步时,会提示邮件没有开启,点击确定开启。
3.建立配置配件
配置文件可以建立多个,需要配置每个配置文件名,可以对配置文件进行说明,点击添加,添加SMTP账户
4.SMTP邮件账户配置完,点击确定
点击下一步,进入到安全性配置,将公共复选框勾住,作为默认配置
点击下一步
5.配置完成
二、sqlServer代理 警报系统配置
1.开启服务代理
2.sqlServer代理,右键属性>警报系统>邮件会话>启用邮件配置文件,选择邮件系统:数据库邮件,邮件配置文件:JobMonitorProfile(刚刚配置的)
3.点击确定
4.重启服务代理(一定要重启)
三、 *** 作员配置
1.开启服务代理
2.sqlServer代理> *** 作员>右键新建 *** 作员>常规
Job配置
1.开启服务代理
2.sqlServer代理>作业>右键新建作业>通知,勾选电子邮件,选择 *** 作员,选择作业完成、失败、还是成功发送邮件
下面为发送邮件的sql,存储过程异常数据通过begin try……end try begin catch……end catch 存储到T_SYS_ExceptionLog表中,然后通过定时检索,如果有异常就发送邮件,代码如下
create procedure [dbo].[proc_Sys_ExceptionSendEmail]as/********************************--function:异常数据发送邮件--author:zhujt--create date:2016-12-2 10:25:41*********************************/begin declare @profilename varchar(100),@HTML varchar(max); set @HTML='<table ><tr><th>日志 *** 作类型</th><th>日志标题</th><th>日志内容</th><th>文件路径</th><th>创建时间</th></tr>'+ (select 'tds'+case ExceptionType when 1 then '数据定时生成' when 2 then '数据 *** 作' end +'tde', 'tds'+ExceptionTitle+'tde', 'tds'+ExceptionMessage+'tde', 'tds'+Module+'tde', 'tds'+CONVERT(varchar(23),CreateDate,120)+'tde' from T_SYS_ExceptionLog where CreateDate>=CONVERT(varchar(10),DATEADD(DAY,-1,GETDATE()),120)+' 00:00:00' FOR XML PATH('tr'),ELEMENTS ) +'</table>'; select @profilename=name from msdb.dbo.sysmail_profile x where exists(select 1 from msdb.dbo.sysmail_principalprofile where profile_ID=x.profile_ID and is_default=0 ); if @profilename is not null and LEN(@profilename)>0 and @HTML is not null and LEN(@HTML)>0 begin set @HTML=REPLACE(REPLACE(@HTML,'tds','<td>'),'tde','</td>'); set @HTML='<style>table{border-right:1px solID;border-bottom:1px solID;}td,th{border-left:1px solID;border-top:1px solID;}</style>'+@HTML; exec msdb.dbo.sp_send_dbmail @profile_name = @profilename,@recipIEnts = 'JobEmail@qq.com', @subject = 'JobEmail', @body = @HTML,@body_format = 'HTML'; endend总结
以上是内存溢出为你收集整理的SQLServer Job 邮件发送全部内容,希望文章能够帮你解决SQLServer Job 邮件发送所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)