注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

mylotustips的博客

IBM Lotus协作产品家族经验分享

 
 
 

日志

 
 
关于我

欢迎大家使用SR向IBM800提交问题http://www.ibm.com/support/servicerequest 可以随时查看问题状态,上传文件

网易考拉推荐

创建用户邮箱的LotusScript代码  

2013-01-06 13:19:21|  分类: LotusScript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
以下的LotusScript代码实例仅供参考,您必须自行承担责任,对其进行测试后才能应用于生产环境。

实现目标:通过Admin4(管理进程)创建用户邮箱,而且一并调整ACL和邮箱Owner.

用法:

1、在Domino 目录names.nsf中创建代理,将附件的代码拷贝粘贴到Designer中,修改CONST 定义的常量,保存并关闭(假设存为名为:“创建邮箱”的代理)
2、然后在Domino 目录的个人视图中选择个人文档,然后选菜单 操作 > 创建邮箱,
3、tell adminp process new 即可完成邮箱的创建

注意:用户的日历项、签名、离开办公室声明在重建邮箱时都会消失,请务必谨慎操作!

Option Public
'---------------------------
%INCLUDE "lsconst.lss"
%INCLUDE "lserr.lss"
Const cServer = "CN=ServerA/O=Lotus802"
Const cType = "AdminRequest"
Const cProxyProcess = "AdminP"
Const cProxyAction = "24"
Const cTemplate = "mail8.ntf"
Const cQuota = 50
Const cWarning = 40
Const cProxyCreateFullTextIndex = 0
Const cOrganization = "Lotus802"
Const cEditor = 2
Const cMailDomain = "@lotus802.com"
'---------------------------
Sub Initialize
 On Error Goto processError
 Dim session As New NotesSession
 Dim AddressDb As NotesDatabase
 Dim docs As NotesDocumentCollection
 Dim AddressDoc As NotesDocument
 Dim AdminDb As New NotesDatabase(cServer, "admin4.nsf")
 Dim AdminDoc As NotesDocument
 Dim item As NotesItem
 Dim sName As String, mailDb As String
 
 Set AddressDb = session.CurrentDatabase
 Set docs = AddressDb.UnprocessedDocuments
 Set AddressDoc = docs.GetFirstDocument()
 fProxyAuthor = session.Username
'---------------------------
 Do While Not (AddressDoc Is Nothing)
  sName = AddressDoc.ShortName(0)
  mailDb = AddressDoc.MailFile(0)
  Set AdminDoc = AdminDb.CreateDocument
  Call AdminDoc.Replaceitemvalue ("Form", cType)
  Set item = AdminDoc.Replaceitemvalue ("ProxyProcess", cProxyProcess)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyAuthor", fProxyAuthor)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyAction", cProxyAction)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyServer", cServer)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxySourceServer", cServer)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyTextItem1", cTemplate)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyDatabasePath", mailDb)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyNameList", AddressDoc.FullName(0))
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyNumItem1", cQuota)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyNumItem2", cWarning)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyCreateFullTextIndex",cProxyCreateFullTextIndex)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyOverrideDefaultDatastore", cProxyOverrideDefaultDatastore)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyMailfileAccessLevel", cEditor)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyOriginatingAuthor", fProxyAuthor)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("$OnBehalfOf", fProxyAuthor)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("FullName", fProxyAuthor)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyOriginatingTimeDate", Now)
  item.IsSigned=True
  Set item = AdminDoc.Replaceitemvalue ("ProxyOriginatingOrganization", cOrganization)
  Set item = AdminDoc.Replaceitemvalue ("Type", cType)
  item.IsProtected = True
  Call AdminDoc.Sign
  Call AdminDoc.Save (False, False)
  Call AdminDoc.ReplaceItemValue("ProxyOriginatingRequestUNID", AdminDoc.UniversalID)
  Call AdminDoc.Sign
  Call AdminDoc.Save (False, False)
  
  Call AddressDoc.Replaceitemvalue ("MailDomain", cOrganization)
  Call AddressDoc.Replaceitemvalue ("MailFile", mailDb)
  Call AddressDoc.Replaceitemvalue ("MailServer", cServer)
  Call AddressDoc.Replaceitemvalue ("MailSystem", "1")
  Call AddressDoc.Replaceitemvalue ("InternetAddress", sName + cMaildomain)
  Call AddressDoc.Save (False, False)
  
Nextdb:
  Set AddressDoc = docs.GetNextDocument(AddressDoc)
 Loop
 Exit Sub
 
processError:
 Messagebox "Error stop: " + AddressDoc.ShortName, MB_ICONSTOP, "Create mail files"
 Print "Agent encountered error: "  & Err()  &  " : "  &  Error() & Str$(Erl())
'     Resume Nextdb
 Exit Sub
End Sub


 


  评论这张
 
阅读(798)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017