2022年SQL Server同Exchange Server结合应用--SQL Mail2SQL server]教程.docx
2022年SQL Server同Exchange Server结合应用-SQL Mail2SQL server教程本段文章节选自铁道出版社新出的用BackOffice建立Intranet/Extranet应用一书(现已在各书店有售。如海淀图书城、西单图书大厦等。外地或者须要送货上门的读者可以到或www.e-上在线购买。本书书号为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日的全部刊载的文章的题目发送给邮件地址为zw的用户。exec master.dbo.xp_sendmail recipients ='zw', message ='1999年12月1日刊载文章题目' , query = 'select timu from test.dbo.gaojianwhere datepart(yy,riqi)=datepart(yy,convert(datetime,''1999-12-01') and datepart(dy,riqi)=datepart(dy,convert(datetime,''1999-12-01'')order by banmian' , subject ='test', attach_results = 'true', width =60, separator = ',' , set_user ='dbo', dbuse = 'test' zw用户收到的邮件附件文件的内容如下: Timu , -测试信息1 ,测试信息2 ,测试信息3 ,