SQL邮件自动应答

2016-01-29 16:43 8 1 收藏

SQL邮件自动应答,SQL邮件自动应答

【 tulaoshi.com - SQLServer 】

SQLMail可以收发邮件,可能好多人都有xp_sendmail发送过邮件,这里介绍一种邮件服务器接收邮件后,根据邮件内容(只能是查询语句) 把邮件中的查询语句执行后的结果以附件形式自动返回给发送邮件者。
eg: 
发送邮件,邮件内容为: select top 10 id,name from sysobjects则服务器自动回复邮件,内容为上述查询语句的执行结果,以附件形式发送。

1:当然是先配置好SQL邮件服务了,这方面的资料比较多,此处不赘述。
2: 把sp_processmail稍作修改 (把发件人的邮件地址解析为真正的邮箱地址)
Alter procedure sp_processmail 
 @subject varchar(255)=NULL,  
 @filetype varchar(3)=’txt’,  
 @separator varchar(3)=’tab’,  
 @set_user varchar(132)=’guest’,  
 @dbuse varchar(132)=’master’  
as  
  
declare @status int  
declare @msg_id varchar(64)  
declare @originator varchar(255)  
declare @originator_address varchar(255)  
declare @a varchar(255)
declare @cc_list varchar(255)  
declare @msgsubject varchar(255)  
declare @query varchar(8000)  
declare @messages int  
declare @mapifailure int  
declare @resultmsg varchar(80)  
declare @filename varchar(12)  
declare @current_msg varchar(64)  
  
select @messages=0  
select @mapifailure=0  
  
if @separator=’tab’ select @separator=CHAR(9)  
  
/* get first message id */  
exec @status = master.dbo.xp_findnextmsg  
  @msg_id=@msg_id output,  
  @unread_only=’true’  
  
if @status < 0  
 select @mapifailure=1  
  
while (@mapifailure=0)  
  begin  
  
    if @msg_id is null break  
    if @msg_id = ’’ break  
  
    exec @status = master.dbo.xp_readmail  
  @msg_id=@msg_id,  
  @originator=@originator output,  
  @cc_list=@cc_list output,  
  @subject=@msgsubject output,  
  @message=@query output,  
  @peek=’true’,  
  @originator_address= @originator_address output,
  @suppress_attach=’true’  
  
    if @status < 0  
 begin  
  select @mapifailure=1  
  break  
 end  
  
    /* get new message id before processing & deleting current */  
 select @current_msg=@msg_id  
 exec @status = master.dbo.xp_findnextmsg  
  @msg_id=@msg_id output,  
  @unread_only=’true’  
  
     if @status < 0  
 begin  
  select @mapifailure=1  
 end  
  
  
    if ((@subject IS NULL) OR (@subject=@msgsubject))  
    begin  
 /*&nb

来源:http://www.tulaoshi.com/n/20160129/1499403.html

延伸阅读
Foxmail如何设置自动分发邮件   在邮箱助理中选择"新建",填入满足条件,下次接收邮件时就会执行。通过此项设置你可以将信笺进行分类,以便更好的管理各种信笺,将一些无用的信件直接淘汰。如:设置所有发信人为zengqingzhu@21cn.com的信件都直接送入废件箱,将所有收信人为zeng0001@163.net的信件放入个人信箱里。
标签: SQLServer
在.NET中,大家知道,可以使用System.Web.Mail来发送邮件。在Framework 1.1下支持验证。private void Page_Load(object sender, System.EventArgs e)  { MailMessage mail = new MailMessage(); mail.To = "me@mycompany.com"; mail.From = ...
标签: windows10
Win10怎么设置邮件自动同步   想必很多用户都已经成功升级了win10,win10系统相比之前的系统原有的很多设置都进行了改变,例如邮箱自动同步功能,可能一些朋友在win10中不知道怎么设置邮件同步,那么Win10怎么设置邮件自动同步,下面图老师小编就给大家介绍win10设置邮件自动同步方法。 1、打开邮件应用 2、打开应用后,...
标签: 电脑入门
1进入QQ邮箱中,有很多种方法可以进入QQ邮箱中,如点击QQ软件上面的信封图标,直接从QQ邮箱网址登陆等,进入后,点击上方的设置按钮 2点击设置按钮后,就进入到邮箱的设置界面总,QQ邮箱的大多数设置的入口都在这里,收信规则就是我们今天这篇经验文档的主角 3点击收信规则后,打开下面的网页,如果之前创建了一些收信规则我们可以设置...
标签: Java JAVA基础
  7.1 状态代码概述 Web服务器响应浏览器或其他客户程序的请求时,其应答一般由以下几个部分组成:一个状态行,几个应答头,一个空行,内容文档。下面是一个最简单的应答: HTTP/1.1 200 OK Content-Type: text/plain Hello World 状态行包含HTTP版本、状态代码、与状态代码对应的简短说明信息。在大多数情况下,除了Co...

经验教程

250

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部