SQL server 2005的数据库邮件怎么用啊?跪求...

已经配置好了数据库邮件,发送测试邮件也成功...

也设置好了操作员.

但是在作业中,选择作业完成后,向DBA发送电子邮件!结果失败...错误见下!

"尚未建立电子邮件会话就试图发送电子邮件 "

作者: sd4174263   发布时间: 2007-06-21

我也遇到同样的问题,顶一下 请高手指点!

作者: jgchenhunter   发布时间: 2011-04-01

SQL Server怎样配置发送电子邮件
ZDNet 软件频道 更新时间:2007-11-26 作者:21tx 来源:21tx
本文关键词:电子邮件 配置 数据库 SQL Server 
通常大家都知道:SQL Server与Microsoft Exchange Server集成性很好,关于这方面的配置,在SQL Server的联机帮助里有详细的说明,在此不再赘述。然而我们更关心的问题是:在没有Exchange Server的情况下,如何配置SQL Server利用Internet 邮件服务器发送邮件? 


  笔者曾为这问题伤透了脑筋,搜遍了互联网上的相关资料,发现仅有的几篇资料中有的是一笔带过,有的虽然介绍了操作步骤,可按照步骤一步一步操作下来,结果总是失败。为此笔者反复实验,终于找到一种简单有效的方法,不敢独自享受,下面是详细的配置步骤,如果您在操作的过程中碰到什么问题,请留言。 


  测试环境:


  1 Windows 2000 Server
  2 SQL Server 2000+SP3
  3 Microsoft OutLook (Office 2000)


  准备一个Internet邮件帐户:


  测试电子邮件帐户:test@163.com
  Smtp服务器 smtp.163.com
  pop3服务器 pop.163.com


  步骤一: 更改电子邮件配置


  1 打开Microsoft OutLook 单击“工具”菜单中的“选项”,然后单击“邮件服务”选项卡。
  2 单击“重新配置邮件支持”。
  3 选择“用于企业或工作组”选项
  4 重新启动Microsoft OutLook


  步骤二: 添加配置文件


  1 单击“工具”菜单中的“服务”,然后单击“添加”按钮。
  2 选择"Internet 电子邮件",单击“确定”。
  3 下面的步骤是设置电子邮件帐号,请参考Microsoft Outlook帮助文件,这里不再赘述。
  4 利用配置好的电子邮件帐号收发邮件,确认配置成功。


  步骤三: 配置MSSQLSERVER服务采用邮件配置文件


  1 重新启动MSSQLSERVER服务(必须的,否则MSSQLSERVER服务检测不到上一步骤添加的配置文件)
  2 打开企业管理器->展开服务器->支持服务->右击"邮件"->点击下拉框,你会发现
  "Microsoft Outlook Internet Settings"选项,点击"测试"。如果弹出表示成功的对话框,那恭喜你,已经 大功告成了。


  步骤四:享受你的劳动成果


  1 打开SQL Server的查询分析器


  2 输入下列SQL语句,执行
  exec master..xp_sendmail 'test@163.com','Hello,World!'


  3 好了,去你的邮箱收邮件去吧! 


  注意事项:以上的配置过程要求以MSSQLSERVER服务采用的Windows帐号登录Windows 2000 Server,即你登录计算机所采用的帐号要和MSSQLSERVER服务采用的Windows帐号相同。

作者: dawugui   发布时间: 2011-04-01

SQL code
SQL Server 并没有内置邮件服务器(Mail Server),它跟我们发送邮件一样,需要用户名和密码通过 SMTP(Simple Message Transfer Protocol)去连接邮件服务器。我们想让 SQL Server 来发送邮件,首先要告诉它用户名称,密码,服务器地址,网络传送协议,邮件服务器的端口。。。等信息。
  以下脚本实现了数据库邮件的配置:
--下面是具体的配置邮件步骤 
--在 sa 系统帐户下运行。 
--
--1. 启用 SQL Server 2005 邮件功能。 
use master
go
exec sp_configure 'show advanced options',1
go
reconfigure
go
exec sp_configure 'Database mail XPs',1
go
reconfigure
go
--2. 在 SQL Server 2005 中添加邮件帐户(account) 
exec msdb..sysmail_add_account_sp
        @account_name            = 'jgj'      -- 邮件帐户名称(SQL Server 使用)
       ,@email_address           = [email='jiaguijun@trusee.com']'jiaguijun@trusee.com'[/email] -- 发件人邮件地址
       ,@display_name            = null                      -- 发件人姓名
       ,@replyto_address         = null
       ,@description             = null
       ,@mailserver_name         = '203.86.70.229'           -- 邮件服务器地址
       ,@mailserver_type         = 'SMTP'                    -- 邮件协议(SQL 2005 只支持 SMTP)
       ,@port                    = 25                        -- 邮件服务器端口
       ,@username                = [email='jiaguijun@trusee.com']'jiaguijun@trusee.com'[/email] -- 用户名
       ,@password                = 'xxxxxx'      -- 密码
       ,@use_default_credentials = 0
       ,@enable_ssl              = 0
       ,@account_id              = null
--3. 在 SQL Server 2005 中添加 profile 
exec msdb..sysmail_add_profile_sp @profile_name = 'dba_profile'      -- profile 名称 
                                 ,@description  = 'dba mail profile' -- profile 描述 
                                 ,@profile_id   = null
-- 在 SQL Server 2005 中映射 account 和 profile 
exec msdb..sysmail_add_profileaccount_sp  @profile_name    = 'dba_profile' -- profile 名称 
                                         ,@account_name    = 'jgj'     -- account 名称 
                                         ,@sequence_number = 1             -- account 在 profile 中顺序 
--5. 利用 SQL Server 2005 Database Mail 功能发送邮件。 
exec msdb..sp_send_dbmail @profile_name =  'dba_profile'     -- profile 名称 
                         ,@recipients   =  [email='jiaguijun@trusee.com']'jiaguijun@trusee.com'[/email]  -- 收件人邮箱 
                         ,@subject      =  'SQL Server 2005 Mail 测试' -- 邮件标题 
                         ,@body         =  'Hello Mail!测试'   -- 邮件内容 
                         ,@body_format  =  'TEXT'      -- 邮件格式 
--6. 查看邮件发送情况: 
use msdb
go
select * from sysmail_allitems
select * from sysmail_mailitems
select * from sysmail_event_log
--如果不是以 sa 帐户发送邮件,则可能会出现错误: 
--
--Msg 229, Level 14, State 5, Procedure sp_send_dbmail, Line 1
--EXECUTE permission denied on object 'sp_send_dbmail', database 'msdb', schema 'dbo'.
--
--这是因为,当前 SQL Server 登陆帐户(login),在 msdb 数据库中没有发送数据库邮件的权限,需要加入 msdb 数据库用户,并通过加入 sp_addrolemember 角色赋予权限。假设该SQL Server 登陆帐户名字为 “dba” 
--
--use msdb
--go
--
--create user dba for login dba
--go
--
--exec dbo.sp_addrolemember @rolename   = 'DatabaseMailUserRole',
--                          @membername = 'dba'
--go
--
--此时,再次发送数据库邮件,仍可能有错误: 
--
--Msg 14607, Level 16, State 1, Procedure sp_send_dbmail, Line 119
--profile name is not valid
--
--虽然,数据库用户 “dba” 已经在 msdb 中拥有发送邮件的权限了,但这还不够,他还需要有使用 profile:“dba_profile” 的权限。 
--
--use msdb
--go
--
--exec sysmail_add_principalprofile_sp  @principal_name = 'dba'
--                                     ,@profile_name   = 'dba_profile'
--                                     ,@is_default     = 1
--
--从上面的参数 @is_default=1 可以看出,一个数据库用户可以在多个 mail profile 拥有发送权限。

作者: fredrickhu   发布时间: 2011-04-01

生成数据库服务器,不能上网 纠结中

作者: fanzhouqi   发布时间: 2011-04-01