数据库:sql 2005 中文企业版
系统:Windows 2003
前提:以window身份验证登录数据库,配置数据库邮件已经成功,发送测试邮件也是成功的!!出现问题在:
我定义操作员名字:xxx,电子邮件的地址:[email protected]
然后新建作业:执行步骤就是一个查询语句(没问题),然后在通知里选择操作员:xxx,在作业完成后
最后进行sqlAgent属性进行配置,在警报系统中启用邮件配置文件,重启sqlAgent,执行作业出现以下错误:
该作业成功。  用户 \Administrator 调用了该作业。最后运行的是步骤 1 (Test)。.  注意: 无法通过电子邮件通知“xxx”。而且我还有一个问题:在sqlAgent属性那边作业系统下面,为什么作业步骤代理用户是灰色的?????

解决方案 »

  1.   

    用SQL SERVER2005 发送邮件
      

  2.   

    --DATABASE MAIL 配置--开启DATABASE MAIL
    EXEC sp_configure 'show advanced', 1; 
    GO
    RECONFIGURE;
    GOEXEC sp_configure 'Database Mail XPs', 1; 
    GO
    RECONFIGURE;
    GOEXEC sp_configure 'show advanced', 0; 
    GO
    RECONFIGURE;
    GO
    --建立邮件账号
    EXECUTE msdb.dbo.sysmail_add_account_sp
        @account_name = 'OPDBA', --发送邮件的账号
        @description = 'mail account ',--账号说明(可省)
        @email_address = '[email protected]',--发件人的电子邮件地址
        @display_name = 'xxxxxx',--显示的标题
        @mailserver_name = 'xxx.xxx.xxx.xxx' ;--邮件服务器
    GO
    --建立配置文件
    EXECUTE msdb.dbo.sysmail_add_profile_sp
           @profile_name = 'monitor',  --配置文件名称
           @description = '监控邮件配置文件' ;--文件说明(可省)
    GO
    --关联账号和配置文件
    EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
        @profile_name = 'monitor',--上面建立的配置文件名称
        @account_name = 'OPDBA',--上面配置的账号名称
        @sequence_number = 1 ; --配置文件中的帐户的序列号
    GO
    --代理服务警报系统启用配置文件
    USE [msdb]
    GO
    EXEC msdb.dbo.sp_set_sqlagent_properties @email_save_in_sent_folder=1
    GO
    EXEC master.dbo.xp_instance_regwrite N'HKEY_LOCAL_MACHINE'
    , N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent'
    , N'UseDatabaseMail'
    , N'REG_DWORD', 1
    GOEXEC master.dbo.xp_instance_regwrite N'HKEY_LOCAL_MACHINE'
    , N'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent'
    , N'DatabaseMailProfile'
    , N'REG_SZ', N'monitor'
    GO
    --建立以上步骤后要重启SQL SERVER代理,比且测试发送--建立操作员
    EXEC msdb.dbo.sp_add_operator @name=N'db_monitor', 
    @enabled=1, 
    @pager_days=0, 
    @email_address=N'[email protected];[email protected]'---收取邮件的地址
    GO