ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 《转》SQL Server 2008 通过配置数据库邮件实现发送邮件功能

《转》SQL Server 2008 通过配置数据库邮件实现发送邮件功能

原创 Linux操作系统 作者:taogchan 时间:2013-03-29 15:10:05 0 删除 编辑

1.简单了解数据库邮件的概念和使用的传输协议及系统体系:

      数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可以包含来自网络中任何资源的文件。 无需 Microsoft Outlook 或扩展消息处理应用程序编程接口(扩展 MAPI)。数据库邮件使用标准的简单邮件传输协议 (SMTP) 发送邮件。无须在运行 SQL Server 的计算机上安装扩展 MAPI 客户端便可以使用数据库邮件。

 

 

要是想详细了解有关数据库邮件其他详细描述内容,可以查阅联机帮助文档:URL:ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.zh-CHS/s10de_4deptrbl/html/14cbf88f-d9d1-41a5-994e-532e2973ac9e.htm

 

2.下面我们通过使用数据库邮件配置向导和sp_configure 存储过程配置启用数据库邮件:
 

 

 

 

 

 
 

 

 

 
 

 

 


 

 

 

 上面,我们配置好数据库邮件账户和配件文件,现在我们使用 SQL Mail XPs 选项可在此服务器上启用 SQL Mail(该选项默认是关闭的)。

 

<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->sp_configure 'show advanced options', 1
go
Reconfigure;
go
sp_configure 'SQL Mail XPs', 1
go
Reconfigure;
go

设置立即生效,无需停止并重新启动服务器,
 

 

 

 

 

3. 发邮件测试及查询数据库邮件日志:

 

<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->use msdb
Go

Exec dbo.sp_send_dbmail @profile_name='Andy的邮件配件',
    
@recipients='test@163.com',
    
@subject='数据库邮件测试',
    
@body='这是从 WWW-0A82D0DF67C\SQL2008DE 上的数据库邮件发出的测试电子邮件!'
Go


 

 

 

查看数据库邮件日志:

<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->use msdb
Go
Select * From dbo.sysmail_log
GO 


 

 

要是发送OK,那么我们在发送目标邮箱里面就会收到类似这样的成功邮件:

 

Bat:
osql -U sa -P cybermart -i SendMail.sql -o log.txt
 
 SendMail.sql :
declare @count int
declare @udate int =CONVERT(varchar(10),GETDATE()-1,112)
select @count=COUNT(1) FROM [KAOQIN].[DB_IAS2_A200].[dbo].[T_TimeRecordDay] a
  where not exists(select 1 from [KAOQIN].[DB_IAS2_A200].[dbo].[T_TimeRecordDay]
     where a.shortname=shortname and attdate=@udate)
if @count>0
begin
declare mycursor cursor for select distinct shortname FROM [KAOQIN].[DB_IAS2_A200].[dbo].[T_TimeRecordDay] a
  where not exists(select 1 from [KAOQIN].[DB_IAS2_A200].[dbo].[T_TimeRecordDay]
     where a.shortname=shortname and attdate=@udate)
     
open mycursor
declare @shortname varchar(10),
@name varchar(100)='';
fetch mycursor into @shortname
while @@fetch_status=0
begin
set @name=@name+'/'+@shortname
fetch mycursor into @shortname
end
set @name='以下地点考勤机数据出现异常: '+@name+''
print @name;
close mycursor
deallocate mycursor
Exec msdb.dbo.sp_send_dbmail @profile_name='TG邮件',
    @recipients='tao.chen@cybermart.co',
    @subject='考勤机异常',
    @body=@name
end

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22392018/viewspace-757402/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-08-28

  • 博文量
    196
  • 访问量
    1242427