使用SQL Mail收发和自动处理邮件 
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']

解决方案 »

  1.   

    但是首先需要局域网内有Exchange Server,虽然sqlserver上的帮助说:只要有一个遵从扩展 MAPI 的邮件服务器就行,但是我也不知道除了Exchange Server,还有什么服务器支持MAPI,这纯粹是微软的东西!!先给你介绍一下Exchange Server的设置方式,其他的邮件服务器是否能设置,怎么设置还是等高人来吧!1。使用 MSSQLServer 服务会用到的用户帐户登录到 Microsoft Windows NT® 4.0 或 Windows® 2000 上。该用户帐户必须是本地计算机的管理员和域帐户。
    2。确认 Exchange Server 客户端 (Exchnge32.exe) 或 Microsoft Outlook™ 客户端 (Outlook.exe) 能够连接到 Exchange Server 而且能够发送电子邮件。如果使用 Outlook,确保 Outlook 安装时选择了"用于企业或工作组"选项。
    3。确认所用的 Exchange Server 配置文件中没有个人消息存储 (.pst)。Exchange Server 配置文件的名字不应超过 32 个字符。
    4。在"服务"选项卡上,确认 Microsoft Exchange Server 和个人通讯簿是唯一可用的服务,然后单击"发送"选项卡。确认"发送到"框中选定的内容是 Exchange Server 中的邮箱,它应该有一个类似于"邮箱 -<友好的用户名>"的名字(其中<友好的用户名>是在第一步中登录到 Windows NT 4.0 或 Windows 2000 的用户名)。
    5。要运行带有 Exchange Server 的"SQL 邮件",MSSQLServer 服务必须在第一步中登录的同一个用户帐户下运行。在"控制面板"中,双击"服务",选择 MSSQLServer 服务,然后单击"启动"。
    6。确认"SQL 邮件"的配置文件是否正确。在 SQL Server 企业管理器中,展开服务器,展开"支持服务"文件夹,选择"SQL 邮件",然后用右键单击。单击"属性",然后在"常规"选项卡上,确保"配置文件名"框中指定的配置文件名正确。(事件探查器名必须与第三步中用到的配置文件名匹配。)单击"测试",验证配置文件设置正确。
    7。如果"SQL 邮件"无法启动(例如,显示错误信息指出配置文件不正确),请检查设置确保未将 Outlook Express 设置为默认的电子邮件客户程序。在"控制面板"中双击"Internet"选项。在"程序"选项卡中,验证 Outlook Express 不在电子邮件组合框中。如果不得不将默认的电子邮件客户程序更改为 Outlook Express 以外的客户程序,那么,可能需要先验证"SQL 邮件"能够用邮件配置文件启动,然后再停止并重新启动 MSSQLServer 服务。 
    在有些情况下,邮件的配置文件可能会损坏而且"SQL 邮件"将无法使用它。要更正这个问题,需要把配置文件复制到另一个文件名下,或重新创建配置文件。
    8。如果用来启动 Microsoft SQL Server&#8482; 的帐户没有权限访问 Exchange 服务器,那么就无法使用"SQL 邮件"。执行 xp_cmdshell 来测试 SQL Server 对 Exchange Server 的访问权限,它执行与"SQL 邮件"相同的权限。使用下面的命令测试对服务器的连接,假定 Exchange Server 位于名为"MyServer"的计算机上。xp_cmdshell "NET USE \\MyServer\IPC$"如果这个命令无法正常执行,说明第三步未正确完成。生成“sql邮件”的配置文件,其实跟生成outlook的邮件配置文件是一样的。只要给outlook配置好了邮件配置文件,sql邮件就可以直接拿来用,唯一要注意的是登录到数据库服务器的用户名一定要和启动sqlserver服务的用户名一致,因为sqlserver在试用sql邮件时,使用的是启动服务的那个帐号。
    具体的配置方法就是在"控制面板"中,双击"邮件"图标,来创建和配置或者复制现有的邮件配置文件。然后在企业管理器中展开"支持服务"项,右击"SQL 邮件"项,然后单击"属性"菜单项。在"配置文件名"列表中,键入或选择为 SQL 邮件配置的邮件配置文件。