您的位置:程序门 -> 企业开发 -> lotus



入门级问题:关于定时代理自动拆离附件


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


入门级问题:关于定时代理自动拆离附件[已结贴,结贴人:icansaymyabc]
发表于:2007-10-09 15:23:25 楼主
我完全不懂   notes,
我的目的很简单,就是在邮件到达后将其附件拆离到一个目录中,然后删除该邮件。

下面是在   csdn   上问到的拆离附件的   notesscript   代码:

sub   initialize
          on   error   goto   exitsub
          dim   s   as   new   notessession
          dim   doc   as   notesdocument
          set   doc   =   s.documentcontext

          dim   object   as   notesembeddedobject
          dim   strname   as   variant
          strname=evaluate("@attachmentnames",   doc)
          forall   v   in   strname
                    set   object   =   doc.getattachment(   v   )
                    if   not   (   object   is   nothing   )   then
                              if   s.platform="windows/32"   then
'                                       msgbox   "平台:windows;开始拆离!"
                                      call   object.extractfile("c:\aaa\"   &   v)
'                                       msgbox   "拆离完成!"
                              else
'                                       msgbox   "未得到对象"
                              end   if
                    end   if
          end   forall

exitsub:
          messagebox   "error"   &   str(err)   &   ":   "   &   error$
end   sub


该代码仅能在选中邮件后在菜单中调用代理的情况下正确拆离附件。

由于我的服务器不给我在服务器上运行新邮件到达代理和定时代理的权限。
我只能在本地数据库上使用定时代理。

可是上面的代码在设为定时代理后根本不启动。就算在代理管理器里手动运行也要出错。


请问各位大大,如何才能让一个运行在本地数据库上的定时代理自动拆离附件。不一定非要notesscript实现。只要达到目的,怎么做都可以。
还有,拆离完了如何将这个邮件删除?(这一步如果实在做不出来也没关系,我可以另外弄一个代理来清理这些邮件)

谢谢各位了!
发表于:2007-10-09 16:10:081楼 得分:0
你的是bs还是cs的?
发表于:2007-10-09 16:17:392楼 得分:50
根据上面提供的代码,我做了一个cs下的.测试通过.
sub   initialize  
on   error   goto   exitsub

dim   s   as   new   notessession  
dim   doc   as   notesdocument
dim   view   as   notesview
dim   db   as   new   notesdatabase(   "",   ""   )
call   db.open(   "diligence",   "testingdb/ht1testdb1.nsf"   )

set   view   =   db.getview("testview1")
set   doc   =   view.getfirstdocument
if   not   (doc   is   nothing)   then
dim   object   as   notesembeddedobject  
dim   strname   as   variant  
strname=evaluate("@attachmentnames",   doc)  
forall   v   in   strname  
set   object   =   doc.getattachment(   v   )  
if   not   (   object   is   nothing   )   then  
if   s.platform="windows/32"   then  
msgbox   "平台:windows;开始拆离!"  
call   object.extractfile("c:\quarantine\"   &   v)  
msgbox   "拆离完成!"  
else  
msgbox   "未得到对象"  
end   if  
end   if
end   forall  
call   doc.remove(true)
else
msgbox   "文档不存在."
end   if

exit   sub
exitsub:  
messagebox   "error:"   &   error$   &   chr(13)   +   "line:"   +     cstr(erl)
exit   sub
end   sub  
设置的是定时代理.
发表于:2007-10-10 16:12:143楼 得分:0
谢谢   kunika   ,你的代码我不能用。

关键在这一句:
set   view   =   db.getview("testview1")  

我不懂view,我的数据库里肯定没有testview1这个view,
我随便给一个其它名字这一句也通过,可是到了下一句:
set   doc   =   view.getfirstdocument  
就出一个变量没赋值的错误。

我没学过notes,不具备notes相关知识,请帮忙解决一下,分数不够再加,先谢过了。

我再说一下我的目的:
        我的收件箱里有很多种邮件,我需要代理自动将subject为特定字符串的邮件的附件拆离后删除该邮件。
发表于:2007-10-11 09:10:374楼 得分:0
我通过看帮助,学会了视图,创建了一个视图,上面的代码可以在手动运行的时候拆离附件了。

可是我将它设置为自动运行,每5分钟运行,它根本不启动。怎么回事嘛??
发表于:2007-10-11 14:56:395楼 得分:0
是我不懂,notes缺省不许运行定时代理,呵呵!


快速检索

最新资讯
热门点击