阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 4828|回复: 11

[原创] 利用SQL 2000和outlook2003 ,实现Excel服务器标准版和717以下版本邮件通知功能

[复制链接]
  • TA的每日心情
    郁闷
    2010-12-18 20:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2008-5-27 22:03:17 | 显示全部楼层 |阅读模式
    基本目的:希望当用户有待办的时候能够以邮件的方式进行通知,让用户及时办理.适用于标准版用户和717以下版本用户
    方法:是:利用通过SQL 的触发器监控保存待办的表.如果有新的记录.就利用SQL Server2000邮件功能向用户邮箱发送一个通知邮件
    配置过程共分两个步骤:sql server2000的配置和excel服务器配置

    先SQL server 2000邮件配置方法
    --========================================
    --SQL
    邮件配置
    --outlook 2003
    sql server 2000163邮局
    --========================================
    ,配置sql server 2000服务:
    1,在控制面板中打开服务,找到:MSSQLSERVER SQLSERVERAGENT,其登录方式不应该为本地系统,应该是具有邮件客户端程序操作权限的 Windows 用户,比如 Windows 管理员,修改方法为,双击该服务,切换到登录标签,选择此帐户,点击浏览选择一个用户,并输入密码,点击确定。右键,重新启动这两个服务。

    服务设置一.JPG

    服务设置二.JPG

    , OutLook2003配置:
    再接下来就是对Outlook的配置了,此处不多谈及,这里我用的是163的邮箱,

    163的免费邮箱发信(smtp)服务器的地址为:smtp.163.com

    163的邮箱收信(pop3)服务器的地址为:pop.163.com

    设置完成后,注意您一定要选择 smtp服务器要求身份验证 选项。

    之后,到控制面板里,找到邮件。点显示“配置文件”这里你会看到里面有一个Outlook.如下图。如果用的是Outlook express等非MAPI邮件客户端则在控制面板里是不会出现邮件这个项目的。

    outlook帐号设置一.JPG

    outlook帐号设置二.JPG

    outlook帐号设置三.JPG









    outlook帐号设置四.JPG



    ,配置SQL SERVER邮件
    ,企业管理器中,展开支持服务,在“SQL 邮件上点击右键,属性,在下拉列表框中选择配置文件名,点击测试,检查是否成功.至此,一个 SQL 邮件配置就完成了,请确保您的 SQL Server Agent 随时都在运行。请确保您的 SQL Server 补丁是最新的。

    outlook帐号设置五.JPG





    要注意的几个问题:
    1.sql server 2000的启动帐户要和sqlagent的启动帐户相同。并且不能用系统帐户。
    2.smtp服务器是否需要验证。hotmail的免费信箱好像不可以在outlook里设置。
    3.在sql邮件运行过程中不能关闭outlook,否则不能发送邮件。

    还有一点就是outlook和sqlserveragent这两个,如果sqlserveragent已经启动,这时候再启动outlook会报错,说是文件正在被使用。这时必须先停掉sqlserveragent才可以把outlook启动开。所以我在我的服务器上设置的是outlook在登录前启动,而sqlserveragent则手动启动。





    [ 本帖最后由 xinxinx 于 2008-5-27 22:05 编辑 ]
    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    郁闷
    2010-12-18 20:03
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2008-5-27 22:20:22 | 显示全部楼层

    继续,excel服务器的相关配置

    继续:第二部分,excel服务器的配置

    Excel服务器的配置:


    ,登陆Excel服务器管理控制台,为每个用户添加邮箱:
    管理台.JPG

    ,Excel服务器数据库添加相应程序
    1,ESsys数据库里建立一个存放邮件发送记录的数据表.可以直接在Sql server的查询分析直接输入下面的代码执行就可以了:





    sendmail表.JPG
    2,建立邮件发送的触发器.SendMail数据表有新增数据的时候.自动执行发送邮件:脚本如下:
    sendmail触发器.JPG



    3,对ESsys数据里的CFWiTodo表建立一个触发器.当有新的待办生成的时候,自动的把相关数据插入到SendMail.代码如下:

    todo触发器.JPG




    至此所有的准备工作均以设置完成.可以填报一个有工作流的模板进行测试了!

    [ 本帖最后由 xinxinx 于 2008-5-27 22:28 编辑 ]
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2017-10-21 14:19
  • 签到天数: 218 天

    [LV.7]常住居民III

    发表于 2008-6-10 08:20:51 | 显示全部楼层
    非常多谢,请把源代码一起发布,因为这个对我们也有难处
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2016-10-11 00:11
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-6-23 16:13:45 | 显示全部楼层

    已拿到你的代码,有问题再请教。

    已拿到你的代码,有问题再请教。
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2016-10-11 00:11
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2008-6-23 19:27:58 | 显示全部楼层

    有错误。

    试着按你的文档设置了一下,提示10033错误,后来没办法解决,只能重新安装了SQLserver才恢复到原来的正常状态。

    [ 本帖最后由 zhaoyq8867 于 2008-6-23 19:31 编辑 ]
    10033.jpg
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    奋斗
    2024-5-7 13:05
  • 签到天数: 1112 天

    [LV.10]以坛为家III

    发表于 2009-3-26 12:46:49 | 显示全部楼层
    恩,学习了。只是现在我的联网络功能打不开怎么办
    启用邀请码注册,提高发帖质量,建设交流社区

    该用户从未签到

    发表于 2009-4-21 15:51:48 | 显示全部楼层
    真是不错,源码有下吗。
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2019-12-2 09:58
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2009-4-26 19:43:23 | 显示全部楼层
    第 30 行: '@BODY' 附近有语法错误。
    以下代码是否有错,请指点
    Create trigger [send_mail] on [dbo].[sendmail]
    for insert
    as
    DECLARE @MAIL AS VARCHAR(100)
    DECLARE @CUST_PO AS VARCHAR(100)
    DECLARE @PCUST_PO AS VARCHAR(100)
    DECLARE @MSG AS VARCHAR(200)
    DECLARE @NAME AS VARCHAR(20)
    DECLARE @BODY AS VARCHAR(200)
    DECLARE @UID AS INT
    DECLARE abc CURSOR SCROLL FOR
            SELECT email
            From inserted

    OPEN ABC
    FETCH FIRST FROM abc into @CUST_PO
    WHILE (@@FETCH_STATUS=0)
    begin

    SELECT @MSG=inserted. widesc, @mail=inserted.sndmail,@UID=inserted.u,
           @name=inserted.UserName
    FROM ESSys.dbo.Cfworkitems Cross JOIN inserted
    WHERE inserted.Email=@CUST_PO AND
          inserted.Widesc=ESSys.dbo.CFWorkitems.widesc

    SELECT @PCUST_PO=rtrim(@CUST_PO)
    SELECT @BODY=RTRIM(@NAME)+',您有待办事宜; "'+RTRIM(@MSG)+'",请到'
    EXEC Master..xp_sendmail @reciptients =@PCUST_PO,
                             @subject     ='待办事宜提醒',
                             @message     =@BODY
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2019-12-2 09:58
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2009-4-26 19:50:22 | 显示全部楼层
    第 30 行: '@BODY' 附近有语法错误。
    以下代码是否有错,请指点
    Create trigger [send_mail] on [dbo].[sendmail]
    for insert
    as
    DECLARE @MAIL AS VARCHAR(100)
    DECLARE @CUST_PO AS VARCHAR(100)
    DECLARE @PCUST_PO AS VARCHAR(100)
    DECLARE @MSG AS VARCHAR(200)
    DECLARE @NAME AS VARCHAR(20)
    DECLARE @BODY AS VARCHAR(200)
    DECLARE @UID AS INT
    DECLARE abc CURSOR SCROLL FOR
            SELECT email
            From inserted

    OPEN ABC
    FETCH FIRST FROM abc into @CUST_PO
    WHILE (@@FETCH_STATUS=0)
    begin

    SELECT @MSG=inserted. widesc, @mail=inserted.sndmail,@UID=inserted.u,
           @name=inserted.UserName
    FROM ESSys.dbo.Cfworkitems Cross JOIN inserted
    WHERE inserted.Email=@CUST_PO AND
          inserted.Widesc=ESSys.dbo.CFWorkitems.widesc

    SELECT @PCUST_PO=rtrim(@CUST_PO)
    SELECT @BODY=RTRIM(@NAME)+',您有待办事宜; "'+RTRIM(@MSG)+'",请到'
    EXEC Master..xp_sendmail @reciptients =@PCUST_PO,
                             @subject     ='待办事宜提醒',
                             @message     =@BODY

    jackdong 于 2009-4-26 22:02 补充以下内容

    楼主请赐教,我用你的方法没有搞定.出错

    jackdong 于 2009-4-27 21:18 补充以下内容

    有没有人站出来说说话,指点一下.
    启用邀请码注册,提高发帖质量,建设交流社区

    该用户从未签到

    发表于 2009-6-29 20:45:27 | 显示全部楼层
    谁有源代码???发我???
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表