| 
| 技术资料  > 数据库 > DB2 : 使用SQL Mail收发和自动处理邮件 |  
使用SQL Mail收发和自动处理邮件 March 25,2004 |  
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' [OUTPUT]]  
        [,[@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' [OUTPUT]]  
        [,[@type =] type]  
        [,[@unread_only =] 'unread_value']) 
 
六、删除邮件 
 
    xp_deletemail {'message_number'} 
 
    如果不指定邮件编号则删除收件箱中的所有邮件 
 
七、自动处理邮件 
 
    sp_processmail [[@subject =] 'subject'] 
        [,[@filetype =] 'filetype'] 
        [,[@separator =] 'separator'] 
        [,[@set_user =] 'user'] 
        [,[@dbuse =] 'dbname'] |  
 
 |