在獨孤九劍兄的幫助下,完成了這段代碼
包括NT用戶的建立,EXCHANGE郵箱的建立,兩者的結合,權限的設置
本代碼在nt4.0+sp6+exchange5.5+adsi2.5下運行通過
建立以后的用戶可以直接收發信件,是一個簡化版本的WEB MAIL ACCESS
adsi_exchange.asp -----------------------------------------------------------------------
<% Set sid = CreateObject("ADsSID") Set sec = CreateObject("ADsSecurity") Set ace = CreateObject("AccessControlEntry")
'---------------------------------------------------------------------------- '--- 如果沒有安裝ADSI2.5的安全庫要手工定義以下參數 '----------------------------------------------------------------------------- Const ADS_SID_HEXSTRING = 1 Const ADS_SID_WINNT_PATH = 5 Const ADS_RIGHT_EXCH_MODIFY_USER_ATT = &H2 Const ADS_RIGHT_EXCH_MAIL_SEND_AS = &H8 Const ADS_RIGHT_EXCH_MAIL_RECEIVE_AS = &H10
'------------------------------------------------------- '-----創建郵箱步驟---------------------- '--------------------------------------------------------
'---- 基本信息 server1 = "114DOMAINSERVER" Org = "114ONLINE" Site = "EXCHANGE" domain = "EXCHANGE" userName = "liuoo" password = "43444"
'--- 郵箱信息 ----- strDisplayName = "rtrtrt" strFirstName = "gfgf" strLastName = "fgfgfg" strAlias = userName strMTA = "cn=Microsoft MTA,cn=" & server1 & ",cn=Servers,cn=Configuration,ou=" & Site & ",o=" & Org strMDB = "cn=Microsoft Private MDB,cn=" & server1 & ",cn=Servers,cn=Configuration,ou=" & Site & ",o=" & Org strSMTPAddr = "ewwe@114online.com"
'------ 建立一個nt用戶 Set dom = GetObject("WinNT://" & domain) Set usr = dom.Create("user", userName) 'On Error Resume Next usr.SetInfo 'If Err.Number <> 0 Then ' Response.Write "111" ' Response.Write Err.Description ' Response.End 'End If usr.SetPassword password
'--- 創建郵箱 ADsPath = "LDAP://" + server1 ADsPath = ADsPath + "/cn=Recipients,OU=" ADsPath = ADsPath + Site ADsPath = ADsPath + ",O=" ADsPath = ADsPath + Org
Set objCont = GetObject(ADsPath)
'Create a new MailBox Set mailBox = objCont.Create("organizationalPerson", "cn=" & strAlias) mailBox.Put "mailPreferenceOption", 0 mailBox.Put "givenName", strFirstName mailBox.Put "sn", strLastName mailBox.Put "cn", strDisplayName mailBox.Put "uid", strAlias mailBox.Put "Home-MTA", strMTA mailBox.Put "Home-MDB", strMDB mailBox.Put "mail", strSMTPAddr mailBox.Put "MAPI-Recipient", True mailBox.Put "rfc822Mailbox", strSMTPAddr
'-------------------------------------------------------- '與nt用戶聯系 '--------------------------------------------------------- sid.SetAs ADS_SID_WINNT_PATH, "WinNT://" & domain & "/" & strAlias & ",user" sidHex = sid.GetAs(ADS_SID_HEXSTRING) mailBox.Put "Assoc-NT-Account", sidHex
' 完成設置 mailBox.SetInfo
'------------------------------------------------- '更改安全設置 '------------------------------------------------- Set sd = sec.GetSecurityDescriptor(mailBox.ADsPath) Set dacl = sd.DiscretionaryAcl ace.Trustee = domain & "\" & strAlias ace.AccessMask = ADS_RIGHT_EXCH_MODIFY_USER_ATT Or ADS_RIGHT_EXCH_MAIL_SEND_AS Or ADS_RIGHT_EXCH_MAIL_RECEIVE_AS ace.AceType = ADS_ACETYPE_ACCESS_ALLOWED dacl.AddAce ace sd.DiscretionaryAcl = dacl sec.SetSecurityDescriptor sd
response.write "successful" %>
------------------------------------------------------------------------ 請注意權限的設置
|