1: 邮箱帐号的用户
2:SQL AGENT的启动用户(控制面板->管理工具->服务->SQLAGENT->启动用户和密码)
这两个要一样.
如何为sql server中sql mail 设置邮箱
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$ " 

解决方案 »

  1.   

    联机帮助:配置邮件配置文件
    SQL 邮件和 SQLAgentMail 可以使用相同或不同的邮件配置文件。如有必要,每个邮件配置文件可以在各自的域帐户中进行配置。配置 SQL 邮件配置文件
    邮件配置文件一经配置,即专门用于 Microsoft&reg; Windows NT&reg; 4.0 或 Windows&reg; 2000 用户域帐户,当用户成功登录到 Windows NT 4.0 或 Windows 2000 时,此用户帐户被激活。SQL 邮件必须在启动 Microsoft SQL Server&#8482; 实例时所使用的同一用户域帐户或环境中创建邮件配置文件。当一个邮件存储过程执行时,SQL 邮件将在触发该过程的域帐户中查找已定义的邮件配置文件。如果打算使用邮件存储过程,必须: 有一个遵从扩展 MAPI 的邮件服务器。xp_startmail
    启动 SQL 邮件客户端会话。语法
    xp_startmail [[@user =] 'mapi_profile_name']
    [,[@password =] 'mapi_profile_password'] 
    配置邮件配置文件,供 MSSQLServer 用于连接您的邮件服务器。 xp_sendmail
    向指定的收件人发送邮件和查询结果集附件。语法
    xp_sendmail {[@recipients =] 'recipients [;...n]'}
    [,[@message =] 'message']
    [,[@query =] 'query']
    [,[@attachments =] 'attachments [;...n]']
    [,[@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']写一个存储过程来发邮件,用job调用此存储过程即可。
    1:
    D. 将结果作为附件文件发送
    下例将查询 SELECT * FROM INFORMATION_SCHEMA.TABLES 的结果作为文本文件附件发送给 Robert King。下例包含邮件的主题行以及将在附件之前出现的邮件正文。@width 参数用于防止在输出行中换行。EXEC xp_sendmail @recipients = '收件人地址', 
    @query = 'SELECT * FROM 表',
    @subject = 'SQL Server Report',
    @message = '邮件来了',
    @attach_results = 'TRUE', @width = 2502: job
    你的数据库服务器-》企业管理器-》管理-》SQL Server 代理-》作业-》新建作业,按照要求填就可以了,在“步骤”的“命令”中填写你要执行的存储过程或语句,在“调度”里面填写什么时间执行
    EXEC sp_add_job @job_name = '作业名字'
    EXEC sp_add_jobstep @job_name = '作业名字',
    @step_name = '步骤名子',
    @subsystem = 'TSQL',
    @command = 'EXEC 库名..过程名', 
    @retry_attempts = 5, --重试次数
    @retry_interval = 5 --重试间隔EXEC sp_add_jobschedule @job_name = '作业名字', 
    @name = '作业调度名字',
    @freq_type = 4, -- 每天
    @freq_interval = 26, --间隔
    @active_start_time = 10000 --开始时间
      

  2.   

    首先需要局域网内有Exchange Server
    虽然sqlserver上的帮助说:只要有一个遵从扩展 MAPI 的邮件服务器就行
    ,但是除了Exchange Server,也不知道还有什么服务器支持MAPI,这纯粹是微软的东西!先给介绍一下Exchange Server的设置方式:1.使用 MSSQLServer 服务会用到的用户帐户登录到
      Microsoft Windows NT&reg; 4.0 或 Windows&reg; 2000 上
      该用户帐户必须是本地计算机的管理员和域帐户.
    2.确认 Exchange Server 客户端 (Exchnge32.exe) 或
      Microsoft Outlook&#8482; 客户端 (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$"如果这个命令无法正常执行,说明第三步未正确完成.