犹豫 发表于 2009-1-8 11:11:17

如何利用SQL Server发邮件?

  SQL SERVER提供了通过EXCHANGE或OUTLOOK收发邮件的扩展存储过程,下面将这几个过程简单的介绍一下。
  
  一、启动SQL Mail
  
  xp_startmail @user,@password
  
  @user和@password都是可选的
  
  也可打开Enterprise Manager中的Support Services,在SQL Mail上单击右键打开右键菜单,然后按Start来启动
  
  二、停止SQL Mail
  
  xp_stopmail
  
  也可用上述方法中的菜单里的Stop来停止
  
  三、发送邮件
  
  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是必需的
  
  参数说明:
  
  参数 说明
  
  @recipients 收件人,中间用逗号分开
  
  @message 要发送的信息
  
  @query 确定执行并依附邮件的有效查询,除触发器中的插入表及删除表外,此查询能引用任何对象
  
  @attachments 附件
  
  @copy_recipients 抄送
  
  @blind_copy_recipients 密送
  
  @subject 标题
  
  @attach_results 指定查询结果做为附件发送
  
  @no_header 不发送查询结果的列名
  
  @set_user 查询联接的用户名,默认为Guset
  
  @dbuse 查询所用的数据库,默认为缺省数据库
  
  四、阅读邮件收件箱中的邮件
  
  xp_readmail [[@msg_id =] 'message_number'] [, [@type =] 'type' ]
  
  [,[@peek =] 'peek']
  
  [,[@suppress_attach =] 'suppress_attach']
  
  [,[@originator =] 'sender' OUTPUT]
  
  [,[@subject =] 'subject' OUTPUT]
  
  [,[@message =] 'message' OUTPUT]
  
  [,[@recipients =] 'recipients [;...n]' OUTPUT]
  
  [,[@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]
  
  [,[@msg_length =] length_in_bytes OUTPUT]
  
  [,[@originator_address =] 'sender_address' OUTPUT]]
  
  参数说明:
  
  参数 说明
  
  @originator 发件人
  
  @subject 主题
  
  @message 信息
  
  @recipients 收件人
  
  @skip_tytes 读取邮件信息时跳过的字节数,用于顺序获取邮件信息段。
  
  @msg_length 确定所有信息的长度,通常与@skip_bytes一起处理长信息
  
  五、顺序处理下一个邮件
  
  xp_findnextmsg [[@msg_id =] 'message_number' ]
  
  [,[@type =] type]
  
  [,[@unread_only =] 'unread_value'])
  
  六、删除邮件
  
  xp_deletemail {'message_number'}
  
  如果不指定邮件编号则删除收件箱中的所有邮件
  
  七、自动处理邮件
  
  sp_processmail [[@subject =] 'subject']
  
  [,[@filetype =] 'filetype']
  
  [,[@separator =] 'separator']
  
  [,[@set_user =] 'user']
  
  [,[@dbuse =] 'dbname'] <
页: [1]
查看完整版本: 如何利用SQL Server发邮件?