利用表触发器发送邮件

  • 格式:doc
  • 大小:72.00 KB
  • 文档页数:11

怎样配置SQL Server发送电子邮件通常大家都知道:SQL Server与Microsoft Exchange Server集成性很好,关于这方面的配置,在SQL Server的联机帮助里有详细的说明,在此不再赘述。

然而我们更关心的问题是:在没有Exchange Server的情况下,如何配置SQL Server利用Internet 邮件服务器发送邮件?笔者曾为这问题伤透了脑筋,搜遍了互联网上的相关资料,发现仅有的几篇资料中有的是一笔带过,有的虽然介绍了操作步骤,可按照步骤一步一步操作下来,结果总是失败。

为此笔者反复实验,终于找到一种简单有效的方法,不敢独自享受,下面是详细的配置步骤,如果您在操作的过程中碰到什么问题,请留言。

测试环境:1 Windows 2000 Server2 SQL Server 2000+SP33 Microsoft Outlook (Office 2000)准备一个Internet邮件帐户:测试电子邮件帐户:test@Smtp服务器pop3服务器步骤一: 更改电子邮件配置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@','Hello,World!'3 好了,去你的邮箱收邮件去吧!使用SQLServer2000 发送邮件详细配置过程新一篇: 利用JOB和SQL邮件功能实现对数据库的定时备分/*提供两种版本的OutLook邮件发送方式有疑问联系作者: zlp321001@*/A:利用OutLook2003发送邮件----------------------------------------------------------------------/*测试环境: windowx XpOutLook: OutLook 2003测试的电子邮件: zlp321001@/第一步骤:建配置文件开始->控制面版->邮件>双击邮件->添加->配置文件名称(SQLSendMailServer)添加新电子邮件帐户->选择POP3(P)->用户信息:姓名:zlp邮件地址:zlp321001@登录信息:用户名:zlp321001密码:****服务器信息:(注意:每一个服务器信息配置均不一样,参考此服务器配置帮助,比如新浪就不一样)接收邮件服务器(POP3)(I): 发送邮件服务器(SMTP)(O): 点击其他设置->发送服务器->选中(我的发送服务器(SMTP)要求验证)->选择登录使用用户名:zlp321001密码:****选中记住密码确定测试帐户设置->成功->下一部->确定打开OutLook软件,测试是否能正常接收邮件,一切OK,进行下一步配置第二步骤:配置数据库服务器采用邮件配置文件重新启动MSSQLSERVER 服务(配置成域用户)开始->控制面版->管理工具->服务->选择MSSQLSERVER服务->属性->登录->流览(我机器是用户名:zlp,密码Zlp登录)选中该用户名和输入密码SQLSERVERAGENT 更改如上面重新启动这两个服务(OutLook配置好后,必须重启,SQL邮件服务才会有效)第三步骤:数据库验证是否成功企业管理器->展开服务器->展开支持服务->SQL邮件->属性->发现"SQLSendMailServer"有这个配置文件名称测试通过第四步骤:写简单的发送邮件程序,测试exec master..xp_sendmail 'zlp@', '测试来自数据库发送的邮件'exec master..xp_sendmail 'zlp321001@', '测试来自数据库发送的邮件'exec master..xp_sendmail 'qvb0803@', '测试来自数据库发送的邮件'exec master..xp_sendmail 'zlp321001@', '测试来自数据库发送的邮件'测试均成功,可能有服务器延时问题,作者从均zlp321001@收到了该邮件----------------------------------------------------------------------------------------------------------B:利用OutLook2000发送邮件/*测试环境: windowx XpOutLook: OutLook 2000测试的电子邮件: zlp321001@/第一步:配置邮件打开OutLook->选择用户企业或工作组工具->选项->邮件服务->单击重新配置邮件支持->“用于企业或工作组”第二步:配置配置文件名称开始->控制面版->邮件->添加->手工配置信息服务->配置文件名称(SQLSendMailServer) ->添加->Internet 电子邮件->确定常规:邮件帐户: 126姓名: zlp单位: zehua电子邮件地址: zlp321001@服务器:服务器:(参考个网站邮件设置帮助手册)接收邮件(POP3): 发送服务器(SMTP):接收邮件服务器:帐户号: zlp321001密码: ****选中"我的服务器要求身份验证"下一步->下一步->完成第三步:添加个人文件夹(用于保存临时文件out2003 不用设置)开始->控制面版->邮件->添加->个人文件夹->选择(PST文件)第四步:测试是否可以正常发邮件第五步:启动SQL服务开始->控制面版->管理工具->服务->启动MSSQLSERVER服务和SQLSERVERAGENT(登录用户均采用域用户名)第六步:测试数据库配置文件企业管理器->展开服务器->展开支持服务->SQL邮件->属性->发现"SQLSendMailServer"有这个配置文件名称测试通过第七步:测试程序发送邮件exec master..xp_sendmail 'zlp@', '测试来自数据库发送的邮件'exec master..xp_sendmail 'zlp321001@', '测试来自数据库发送的邮件'exec master..xp_sendmail 'qvb0803@', '测试来自数据库发送的邮件'exec master..xp_sendmail 'zlp321001@', '测试来自数据库发送的邮件'测试结果,均从以四个邮箱收到来自"zlp321001@"的邮件--简单应用实例:(用户注册后,收到用户注册信息邮件)--测试表CREATE TABLE users(ID INT IDENTITY(1,1),Name V ARCHAR(50),Email V ARCHAR(200))GO--触发器,CREATE TRIGGER TR_Users_I ON UsersFOR INSERTASDECLARE @email varchar(200)SELECT @email=Email FROM INSERTEDEXEC('EXEC Master..xp_sendmail '''+@email+''',''注册成功''' )--插入测试数据INSERT Users(Name,Email) V ALUES('zlp','Zoulp@')我们可以在SQL中通过刚才的配置来收发邮件。

在sql server 2000中,通过xp_snedmail以及以xp_开头的存储过程来发送和管理邮件。

数据邮件用的是在msdb库sp开头的一些存储过程来收发和管理邮件。

sp_send_dbmail发送电子邮件年,用法如下:sp_send_dbmail [ [ @profile_name = ] 'profile_name' ][ , [ @recipients = ] 'recipients [ ; ...n ]' ][ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ][ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ][ , [ @subject = ] 'subject' ][ , [ @body = ] 'body' ][ , [ @body_format = ] 'body_format' ][ , [ @importance = ] 'importance' ][ , [ @sensitivity = ] 'sensitivity' ][ , [ @file_attachments = ] 'attachment [ ; ...n ]' ][ , [ @query = ] 'query' ][ , [ @execute_query_database = ] 'execute_query_database' ][ , [ @attach_query_result_as_file = ] attach_query_result_as_file ][ , [ @query_attachment_filename = ] query_attachment_filename ][ , [ @query_result_header = ] query_result_header ][ , [ @query_result_width = ] query_result_width ][ , [ @query_result_separator = ] 'query_result_separator' ][ , [ @exclude_query_output = ] exclude_query_output ][ , [ @append_query_error = ] append_query_error ][ , [ @query_no_truncate = ] query_no_truncate ][ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]sp_send_mail 返回值1表示成功,0表示失败sp_send_dbmail参数解释[ @profile_name = ] 'profile_name'发送邮件的配置文件的名称。