当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server同Exchange Server结合应用--SQL Mail2

MSSQL
精细讲述SQL Server数据库备份多种方法
让SQL Server也能使用2G以上内存
SQL Server数据库崩溃恢复之法
创建区分大小写的SQL Server 2000实例
SQL Server中易混淆的数据类型
如何优化SQL Server数据库查询
使用Robot连接SQL的例子
如何让你的SQL运行得更快
对Sql Server中的表添加级联更新和级联删除
常用SQL语句书写技巧
SQL Server与Oracle实施成本上的差异
解析SQL Server的数据类型 BLOB
SQL Server数据库和XML标识语言的集成
SQLServer 数据库还原和孤立用户的解决办法
SQL Server 2000/2005 分页SQL
Sql Server锁表
SQLServer2005实现远程数据库备份
SQL精妙语句
SQL Server 2008的逻辑查询处理步骤
如何让你的SQL运行得更快

MSSQL 中的 SQL Server同Exchange Server结合应用--SQL Mail2


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 33 ::
收藏到网摘: n/a

本段文章节选自铁道出版社新出的《用BackOffice建立Intranet/Extranet应用》一书(现已在各书店有售。如海淀图书城、西单图书大厦等。外地或者需要送货上门的读者可以到www.wanbook.com.cn或www.e-bookshop.com.cn上在线购买。本书书号为ISBN7113039448)。本书详尽地讲述了如何使用微软BackOffice系列产品来组建Intranet/Extranet应用。通过它您将掌握NT的安装和设置、使用IIS建立Web站点、通过ILS建立网络会议系统、用Exchange建立企业的邮件和协作系统、用SQL Server建立Web数据库应用、用Proxy Server建立同Internet安全可靠的连接、用Media Server建立网络电视台/广播站、用Chart server建立功能强大的聊天室、用Site Server建立个性化的邮件列表和分析网站的访问情况、用Commerce Server建立B2B或B2C的电子商务网站。此外本书还对网络的安全性进行了讨论,从而指导您建立一个更为健壮和安全的网络应用。阅读本书之后,您将发现实现丰富多彩的网络应用原来这样简单……
绝对原创,欢迎转载。但请务必保留以上文字。

6.7.2.    通过SQL Mial发送邮件
    SQL Mail会在两种情况之下发送邮件。一种是当系统发生警报时间时,会向预先为警报定义的操作员发送警报信息邮件(我们将在下一节中对此问题做详细的讨论)。另一种是通过扩展存贮过程xp_sendmail来发送邮件。如果我们想要在SQL Server应用中完成发送邮件功能的话,就需要使用此存贮过程。它的语法结构如下:
    xp_sendmail {[@recipients =] 'recipients [;...n]'}
    [,][@message =] 'message']
    [,][@query =] 'query']
    [,][@attachments =] attachments]
    [,][@copy_recipients =] 'copy_recipients [;...n]'
    [,][@blind_copy_recipients =] 'blind_copy_recipients [;...n]'
    [,][@subject =] 'subject']
    [,[@type =] 'type']
    [,][@attach_results =] 'attach_value']
    [,][@no_output =] 'output_value']
    [,][@no_header =] 'header_value']
    [,][@width =] width]
    [,][@separator =] 'separator']
    [,][@echo_error =] 'echo_value']
    [,][@set_user =] 'user']
    [,][@dbuse =] 'database']
    其中各参数的含义分别如下:
■    recipients:为邮件指定的接收人,可以同时将邮件发给多个用户。各用户的邮件地址用分号分割。此参数必须指定,而其他参数都为可选参数。
■    message:邮件中的信息,其最长不得超过7990字节。
■    query:一段SQL语句,其结果集将附在邮件之中。它的长度不得超过8000字节。
■    attachments:用来指定一个文件作为被发送邮件的附件。
■    copy_recipients:用来指定此邮件抄送到哪些用户。即我们在邮件程序中常见的CC to:功能。
■    blind_copy_recipients:功能同上个参数。不过不同的是,邮件之中将不会包含这些收件人的地址信息。即我们在邮件程序中常见的密送BCC to:功能。
■    subject:邮件的标题。如果不指明,默认为"SQL Server Message"。
■    type:指定邮件的MAPI类型。默认为空值。
■    attach_results:指明是否将SQL语句的执行结果作为一个附件进行发送。其取值为TRUE或FALSE。默认值为FALSE。
■    no_output:指明此发送将不返回信息到SQL 客户端。其取值为TRUE或FALSE。默认值为FALSE。
■    no_header:指明不将SQL语句执行结果中的字段名包含在邮件之中。其取值为TRUE或FALSE。默认值为FALSE。
■    width:指定SQL语句执行结果的行宽。省缺宽度为80个字符这样可能会造成一些结果行被从中间截断的现象。将行宽设大一些可以有效地防止此现象。
■    separator:指定SQL语句的执行结果进行字段分割的字符。这样会方便一些电子表格应用程序读取结果集。
■    echo_error:指明是否包含系统错误信息。其取值为TRUE或FALSE。默认值为TRUE。
■    set_user:指明执行SQL语句的用户,默认为guest。此参数所指定的用户应该在master数据库中存在。
■    dbuse:指明SQL语句在哪个数据库上执行,默认为set_user指定的用户的省缺数据库。
下面的例子将把1999年12月1日的所有刊载的文章的题目发送给邮件地址为[email protected]的用户。
exec master.dbo.xp_sendmail
    @recipients ='[email protected]',
    @message ='1999年12月1日刊载文章题目' ,
    @query = 'select timu
from test.dbo.gaojian
where datepart(yy,riqi)=datepart(yy,convert(datetime,''199