SQL2005发邮件的配置

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

--基本的发送语句
EXEC sp_send_dbmail @profile_name = 'xx_adam',
 @recipients = 'xx_adam@263.com',
 @subject = '我数据库邮件测试成功了!',
 @body = 'hello,world!'

--包含查询的
EXEC sp_send_dbmail @profile_name = 'xx_adam',
 @recipients = 'xx_adam@263.com',
 @subject = '查询结果',
 @query = 'select * from demo.dbo.orders',


--包含附件
EXEC sp_send_dbmail @profile_name = 'xx_adam',
 @recipients = 'xx_adam@263.com',
 @subject = '包含附件',
 @body = '有附件,请查收',
 @file_attachments = 'c:a.txt'

--将查询作为附件
EXEC sp_send_dbmail @profile_name = 'xx_adam',
 @recipients = 'xx_adam@263.com',
 @subject = '查询结果',
 @body = '查询结果在附件中',
 @query = 'select * from demo.dbo.orders',
 @attach_query_result_as_file = 1,
 @query_attachment_filename = 'a.txt'[/P]

电脑版 Page created in 0.0938 seconds with 4 queries.