一、前言
在配置数据库邮件之前,先和大家说说数据库邮件体系,首先我们知道的,msdb系统数据库保存有关Job,Database Mail,Nodifyication等等之类信息的.
MSSQL2005的邮件功能,使用了Services Broker进行了队列处理.然后使用外部进程,这个可以在配置成功Mail以后查看任务管理器中的进程.
另外的, sp_send_dbmail是手动发送邮件的存储过程,我们必须显示的赋值才能发送,等配置完以后和大家说说这个存储过程.
二、配置.
首先,因为邮件是基于services broker发送的,我们必须确保msdb数据库打开了service broker 功能.
USEmsdb;--首先查看是否开启了数据库邮件EXECsysmail_help_status_sp--先启用数据库邮件
SELECT*FROMsys.configurationsEXECsp_configure'show advanced options',1RECONFIGUREWITHOVERRIDEEXECsp_configure'Database Mail XPs',1RECONFIGUREWITHOVERRIDE--查看是否启用Service BrokerSELECTis_broker_enabled 是否开启FROM sys.databasesWHERE[name]='msdb'--我们使用启用这个数据库Service BrokerALTERDATABASEmsdbSETENABLE_BROKER--我们使用可以单独为数据库邮件启用Service BrokerEXECUTEdbo.sysmail_start_sp ;GO--关闭Serice BrokerEXEC
下面开始配置:
#1:打开SSMS的对象资源管理器->在管理文件中->打开数据库邮件->右键->选择配置数据库邮件
#2:我们会得到这样一个对话框:
我们先选择第一个Radio,重新配置
#3:配置文件名填写 配置文件的名称
配置文件名填写,配置文件的名称.
然后我们新添加一个SMTP帐号,而且在对话框中有说明,一个配置文件可以与多个SMTP帐号关联,说明可以故障转移,当我们的一个SMTP服务器宕机异常的时候,自动的转移到下一个SMTP账户.
配置文件名填写 配置文件的名称
#4:
我这里的话已经新建了一个数据库邮件帐号,所以你需要单击新建帐号打开对话框
#5:
帐户名的话就是在上幅图中的帐户名的名称显示.然后看到SMTP这块,电子邮件地址也就是接受发送邮件的地址.而答复电子邮件可以设置相同的电子邮件,服务器名称制定自己的主机IP或者主机名
看到SMTP身份验证
之前我们在POP3中设置的就是基本身份验证(这种是明文形式的密码,不太安全,以后可以使用CA,我CA的文章已经在写了,到时候发上去吧呵呵)
密码帐号自己填写.
成功以后,就选择一个配置文件账户.
#6:我们可以建立多个帐号方便故障转移
#7:
在公共配置文件中,博友可以按照自己的爱好配置了,配置是否默认配置文件==
记得一定要有msdb中的角色:
SELECTrl.nameAS[Name]FROMsys.database_principalsASrlINNERJOINsys.database_principalsASouONou.principal_id=rl.owning_principal_idWHERE(rl.type='R')
查询中的DatabaseMailUserRole角色.
公共配置文件对 msdb 数据库中的 DatabaseMailUserRole 数据库角色的所有成员都可用。它们允许 DatabaseMailUserRole 角色的所有成员使用该配置文件发送电子邮件。专用配置文件为 msdb 数据库中的安全主体而定义。它们仅允许指定的数据库用户、角色和 sysadmin 固定服务器角色的成员来使用该配置文件发送电子邮件。
#8:可以配置具体的参数,比如文件扩展名啊,重试次数啊,日志记录级别等
#9:一直下一步,确定.如果成功了恭喜你,你认真查看了本文章
#10:继续回到对象资源管理器->数据库邮件->右键发送测试文件
我们通过自己建立账户1@mssql.com向2@msql.com发送邮件.
我们通过下面的方式来查看相关的信息
USEmsdb;GO--查看发送的邮件SELECT*FROMsysmail_sentitems--查看我们失败的邮件SELECT*FROMsysmail_faileditems--查询所有的邮件SELECT*FROMsysmail_allitems--我们经常这种关联来查看失败的邮件的外部进程日志SELECT*FROMsysmail_faileditems AINNERJOINsysmail_event_log BONA.mailitem_id=B.mailitem_id--查看附件信息SELECT*FROMsysmail_mailattachments--查看所有的数据库邮件日志,里面包含了我之前的测试,现在我要进行一些删除SELECT*FROMsysmail_event_log--删除成功的数据库邮件日志EXECUTEmsdb.dbo.sysmail_delete_log_sp'success';GO--删除所有的日志EXECUTEmsdb.dbo.sysmail_delete_log_sp ;GO--删除特定日期的EXECUTEmsdb.dbo.sysmail_delete_log_sp@logged_before='2009-09-20';
其他的一些存储过看看:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/udb9/html/5aa2886e-1db1-4066-85df-57ccf4538c54.htm
最后就是使用sp_send_dbmail来发送邮件可以查阅MSDN:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/f1d7a795-a3fd-4043-ac4b-c781e76dab47.htm
三、结束语
通过两篇文章博友应该基本了解了数据库邮件的配置,至于如何使用,就看大家了哈.