您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

SQL Server 2005使用管理数据库邮件

添加时间:2013-4-19 17:56:14  添加: 思海网络 
 在SQL Server 2005里出现了一种新的邮件子系统,叫做数据库邮件。数据库邮件比起早些SQL Server版本的SQL邮件有很大改进。现在你可以建立多个账号和个人资料以满足你不同的应用电子邮件需求

  本文将要讨论建立和管理数据库邮件。

  什么是数据库邮件?

  数据库邮件是一个邮件队列系统。电子邮件消息存储在msdb数据库里的队列中等待被处理。当一个电子邮件消息到达队列时,将会触发一个外部过程来把队列中的这个消息送到合适的邮件服务器端。邮件一旦被发送,一个装有邮递状态的电子邮件消息就会被邮递回SQL Server。

  打开数据库邮件功能项

  数据库邮件在模块之外是不可用的。由于SQL Server安全模型缺省把所有选项都关闭了,如果你要想使用它的话就需要使能数据库邮件。你可以使用表面区域配置工具,或者用下面的T-SQL来使能数据库邮件:

  sp_configure'showadvancedoptions',1;
  GO
  RECONFIGURE;
  GO
  sp_configure'DatabaseMailXPs',1;
  GO
  RECONFIGURE
  GO

  建立账号

  数据库邮件账号鉴别SQL Server 2005应该如何和SMTP服务器进行通信。这个账号具体说明了电子邮件如何被格式化和发送的。单一的账号将会鉴别单一的SMTP服务器和认证方法。数据库邮件所使用的账号不和SQL Server登录账号相对应。

  当建立一个账号时你需要鉴别足够的信息以便使SQL Server 2005能够和SMTP服务器通讯,如果需要的话还要认证。可以参考Books Online获取定义账号的完整选项列表。你可以使用数据库邮件配置向导来建立账号,向导可以在SQL Server Management Studio里的“管理”文件夹“数据库邮件”下找到,或者使用存储过程(SP)“sysmail_add_account_sp”。这里有一个脚本使用了上面提到的存储过程来创建一个和不需要认证的SMTP服务器相通信的账号。

EXECUTEmsdb.dbo.sysmail_add_account_sp
  @account_name='DatabaseAdministrationAccount',
  @deion='MailaccountforusedbyDBAstaff',
  @email_address='ProdServer01@databasejournal.com',
  @display_name='ProdServer01DBAMail',
  @replyto_address='Greg.Larsen@databasejournal.com',
  @mailserver_name='mailserver.databasejournal.com';

  这个账号名为“数据库管理账号”,邮件地址为ProdServer01@databasejournal.com。使用数据库邮件的优点之一就是这个邮件地址不必再是你邮件系统中的一个有效的邮件账号。除此之外,你可以把回复地址和你的数据库邮件账号联系起来。在上面的例子中,我定义了Greg.Larsen@databasejournal.com作为回复地址。所以现在,当某人从我的自动邮件通知处理得到一封邮件时,他们可以回复,这个回复邮件能直接发送到我这里。

  有了数据库邮件,你就可以根据你的需要尽可能多地建立邮件账号。一会儿,我将讨论你需要建立多个数据库邮件账号的原因。

  建立个人资料并和账号相联系

  在能够发送数据库邮件到一个在账号中鉴别过的SMTP服务器之前,你需要把账号和个人资料联系起来,把访问权授予个人资料。数据库邮件个人资料用来提高邮件安全性。有两种个人资料,公开的和私有的。公开的个人资料任何人都可见,它把访问权授予msdb数据库,是msdb数据库中DatabaseMailUserRole中的成员,而私有的个人资料只可以被授权访问私有个人资料的特定用户使用。一个邮件个人资料能够和一个或多个账号相联系。你可以使用数据库邮件配置向导来管理个人资料,或者使用一些和下面类似的T-SQL命令来建立邮件个人资料:

 --CreateaDatabaseMailprofile
  EXECUTEmsdb.dbo.sysmail_add_profile_sp
  @profile_name='DatabaseAdministrationProfile',
  @deion='MailProfileforusebyDBAprocesses';

  这里我只是创建了一个名为“数据库管理个人资料”的个人资料。现在你仅仅有了一个刚创建的个人资料,并不意味着你能够使用它来发送邮件。你仍然需要把那个个人资料和至少一个数据库邮件账号及msdb数据库里的一个用户联系起来。为了做到这些我可以执行下面的语句:

  --Addtheaccounttotheprofile
  EXECUTEmsdb.dbo.sysmail_add_profileaccount_sp
  @profile_name='DatabaseAdministrationProfile',
  @account_name='DatabaseAdministrationAccount',
  @sequence_number=1;
  --Grantaccesstotheprofile
  EXECUTEmsdb.dbo.sysmail_add_principalprofile_sp
  @profile_name='DatabaseAdministrationProfile',
  @principal_name='ProdServer01',

  第一个EXECUTE语句把我的个人资料和一个账号相联系。第二个EXECUTE语句把我的个人资料和‘ProdServer01’msdb数据库用户相联系。这个用户在他们能够发送邮件之前必须是DatabaseMailUserRole中的成员。既然我把个人资料和一个特定用户联系起来,这个个人资料就是一个私有个人资料。要创建一个公共个人资料你需要把个人资料和“公共”数据库角色相联系。

  发送数据库邮件

SQL Server提供了存储过程“sp_send_dbmail”来发送邮件。下面的句法用来调用这个存储过程:

关键字:SQL Server、数据库、存储过程

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站