Cannot test here (don't have the infrastructure), but try this:
Code:
Break ON
$=SetOption("Explicit","ON")
$=SetOption("WrapAtEOL","ON")

Dim $sUser
Dim $oMailBox

"Enter username: " GetS $sUser
$oMailBox=udfGetMailBox(udfGetOU($sUser))
If @ERROR udfError("while attempting to get mailbox") EndIf
Exit 0



Function udfGetMailbox($sOU)
If Not $sOU Exit @ERROR EndIf
$mailbox=GetObject("LDAP://"+$sOU)
If @ERROR udfError("getting mailbox") Exit @ERROR EndIf
EndFunction

Function udfGetOU($sUserName)
Dim $dn,$objRootDSE,$strDomain
Dim $objConnection,$objCommand
Dim $objRecordSet

$udfGetOU=""

$objRootDSE = GetObject("LDAP://RootDSE")
If @ERROR udfError("getting RootDSE") Exit @ERROR EndIf
$strDomain = $objRootDSE.Get("DefaultNamingContext")

$objConnection = CreateObject("ADODB.Connection")
If @ERROR udfError("creating ADODB connection") Exit @ERROR EndIf
$objConnection.Open("Provider=ADsDSOObject;")
If @ERROR udfError("opening ADODB provider") Exit @ERROR EndIf
$objCommand = CREATEOBJECT("ADODB.Command")
If @ERROR udfError("creating ADODB command") Exit @ERROR EndIf
$objCommand.ActiveConnection = $objConnection
$objCommand.CommandText =
"<LDAP://"
+$strDomain
+">;((saMAccountName="
+$sUserName
+"))"
+";distinguishedName,name;subtree"

$objRecordSet = $objCommand.Execute

While Not $objRecordSet.EOF
$dn = $objRecordSet.Fields("distinguishedName").Value
$udfGetOU = $dn
$objRecordSet.MoveNext
Loop
EndFunction

Function udfError($s)
"ERROR: While "+$s+@CRLF
"Reason: ["+@ERROR+"] "+@SERROR+@CRLF
Exit @ERROR
EndFunction