首先需要局域网内有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$"如果这个命令无法正常执行,说明第三步未正确完成.

解决方案 »

  1.   

    配置了邮件服务器才可以用SQL发邮件的
      

  2.   

    邹建大哥搞错了,我说的邮件其实是sql里的一个表,并不是真正意义上的邮件系统,用户登录网站之后就能进入自己的社区,察看自己的邮件,这种邮件是站内用户自己使用的,原理就是查看mail_to这个表,如果用户名(member_name)在这个表里不存在,就显示没有邮件.基本代码如下:insert into mail_to(mail_title,mail_to,mail_from,mail_content) values ('生日快乐',member.member_name,'webmaster','生日快乐') join
     Member
    WHERE (DAY(member.birthday) = DAY({ fn NOW() })) AND (MONTH(member.birthday) = MONTH({ fn NOW() }))
      

  3.   

    insert into mail_to(mail_title,mail_to,mail_from,mail_content)
    select '生日快乐',member_name,'webmaster','生日快乐'
    from Member
    WHERE convert(varchar(5),birthday,110) = convert(varchar(5),getdate(),110)
      

  4.   

    小改楼上的一下
    ----------------------------------
    insert into mail_to(mail_title,mail_to,mail_from,mail_content)
    select '生日快乐',member_name,'webmaster','生日快乐'
    from Member
    WHERE convert(varchar(5),birthday,10) = convert(varchar(5),getdate(),10)