如何使用SQL Mail收发和自动处理邮件?
发布时间:2010-05-16 15:10:00
我发现有的网站利用了SQL SERVER提供的通过EXCHANGE或OUTLOOK收发邮件的扩展存储过程来完成收发和自动处理邮件(这句话太长了),是怎样实现的?
SQL SERVER为我们提供的扩展存储过程,可以完成收发和自动处理邮件功能,下面来大致了解一下:
一、运行和关闭
1、启动SQL Mail:
xp_startmail @user,@password
其中@user和@password可选,还可通过打开Enterprise Manager中的Support Services,在SQL Mail上单击右键,然后按菜单中的Start来启动。
2、关闭SQL Mail:
xp_stopmail
也可以通过打开Enterprise Manager中的Support Services,在SQL Mail上单击右键,按菜单里的Stop来终止。
二、收发邮件
1、发送邮件
xp_sendmail {[@recipients =] 'recipients [;...n]'}
' @recipients,收件人,中间用逗号分开,必需
[,[@message =] 'message']
' @message,要发送的信息
[,[@query =] 'query']
' @query,确定执行并依附邮件的有效查询,可以引用任何对象,触发器中的插入表及删除表除外
[,[@attachments =] attachments]
' @attachments,附件
[,[@copy_recipients =] 'copy_recipients [;...n]'
' @copy_recipients,抄送
[,[@blind_copy_recipients =] 'blind_copy_recipients [;...n]'
' @blind_copy_recipients,密送
[,[@subject =] 'subject']
' @subject,标题
[,[@type =] 'type']
[,[@attach_results =] 'attach_value']
' @attach_results,指定查询结果做为附件发送
[,[@no_output =] 'output_value']
[,[@no_header =] 'header_value']
' @no_header,不发送查询结果的列名
[,[@width =] width]
[,[@separator =] 'separator']
[,[@echo_error =] 'echo_value']
[,[@set_user =] 'user']
' @set_user,查询联接的用户名,默认为Guset
[,[@dbuse =] 'database']
' @dbuse,查询所用的数据库,默认为缺省数据库
2、阅读邮件收件箱中的邮件
xp_readmail [[@msg_id =] 'message_number'] [, [@type =] 'type' [OUTPUT]]
[,[@peek =] 'peek']
[,[@suppress_attach =] 'suppress_attach']
[,[@originator =] 'sender' OUTPUT]
' @originator,发件人
[,[@subject =] 'subject' OUTPUT]
' @subject,主题
[,[@message =] 'message' OUTPUT]
' @message,信息
[,[@recipients =] 'recipients [;...n]' OUTPUT]
' @recipients,收件人
[,[@cc_list =] 'copy_recipients [;...n]' OUTPUT]
[,[@bcc_list =] 'blind_copy_recipients [;...n]' OUTPUT]
[,[@date_received =] 'date' OUTPUT]
[,[@unread =] 'unread_value' OUTPUT]
[,[@attachments =] 'attachments [;...n]' OUTPUT])
[,[@skip_bytes =] bytes_to_skip OUTPUT]
' @skip_tytes,读取邮件信息时跳过的字节数,用于顺序获取邮件信息段
[,[@msg_length =] length_in_bytes OUTPUT]
' @msg_length,确定所有信息的长度,通常与@skip_bytes一起处理长信息
[,[@originator_address =] 'sender_address' OUTPUT]]
3、按顺序处理下一个邮件
xp_findnextmsg [[@msg_id =] 'message_number' [OUTPUT]]
[,[@type =] type]
[,[@unread_only =] 'unread_value'])
4、删除邮件
xp_deletemail {'message_number'}
如果不指定邮件编号则删除收件箱中的所有邮件
三、自动处理邮件
sp_processmail [[@subject =] 'subject']
[,[@filetype =] 'filetype']
[,[@separator =] 'separator']
[,[@set_user =] 'user']
[,[@dbuse =] 'dbname']
猜你喜欢
- ---- 一、 引言: ---- 回滚段是数据库的一部分,它记录数据库变更的信息。使用这些信息实现数据库的读一致性及其恢复。若回滚段出现故障
- 下面是虚机维护中,经常碰到的一些ASP程序中的数据库调用的错误,现收集整理如下:
- 1.视图的概述 视图其实就是一条查询sql语句,用于显示一个或多个表或其他视图中的相关数据。视图将一个查询的结果作为一个表来使用,因此视图可
- Dethe Elza (delza@livingcode.org), 高级技术架构师, Blast Radius &n
- 如何做一个专门显示文本文件的页面? 代码如下:txt.asp<html><head&g
- 昨天在W3C看到,6月10日发布了新的 HTML 5 草案(Working Draft)。粗略的读了一下它提供的 新版本说明文档 ,作了一点
- 用字符串就可以轻松地获取每一个文件的名称和扩展名,但不要乱用:<%Function getFilename(text)tex
- MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。MySQL 是完全网络化
- <SCRIPT language="JavaScript"><!-- Beginfunction mo
- udf_WeekDayName 代码如下:CREATE FUNCTION [dbo].[udf_WeekDayName] ( ) RETUR
- c shell perl php下的日期时间转换: 秒数与人类可读日期 scalar localtime 与 seconds since `
- Oracle不像SQLServer那样在存储过程中用Select就可以返回结果集,而是通过Out型的参数进行结果集返回的。实际上是利用REF
- 数字函数 ABS():求绝对值。 CEILING():舍入到最大整数。 FLOOR():舍入到最小整数。 ROUND():四舍五入 ROUN
- 又有人说设session.timeout=99999。这种同样不行,session有最大时间限制。我经过测试发现最大值为24小时,也就是说你
- 社会上的任何人,都不愿意自己给人留下难以交往的印象,就算是那些冷漠、寡情的人他们也在不断地寻求一种通道,达到与他人的交流和沟通。如果,在你与
- 以前在介绍SQL2k的时候已经提到了SQL2k对XML的支持,使用for XML语句就可以很容易的把执行的结果转化为一个XML,这样可以在很
- ADODB.Stream在ASP编程中往往用于无组件上传,并且可以指定文件编码,可以应对各种不同的需要。但是在使用ADODB.Stream过
- js汉字简繁转换源代码:<html> <head> <title>汉字简繁转换工具_asp之家</
- 我对定格动画非常喜爱,也曾经在大学毕业时期制作过一部个人定格动画MV.恰当给CDC博客写文之机,给大家介绍下定格动画,分享下这门独特的拍摄艺
- 阅读上一篇:你是真正的用户体验设计者吗? Ⅱ系统和用户环境设计苹果系统成功在于系统架构。简化系统本身,设备只能变得更好、更小、性能更强大。在