Okay... here is what I have... the start of 3 new UDFs. The getUserDN may already exist somewhere [edit: ahh... so this is what TranslateName() does. /edit], so I may have reinvented the wheel. The UDFs still need some cleanup, debugging, etc, but should be working. As we discussed, the AD perms may be an issues with the SET udf.

break on
$=setoption("NoMacrosinstrings","on")


for each $email in getemailaddresses() ; current user
? $email
next
?
$defaultemailaddress=GetemailAddresses()[0] ;current user
? $defaultemailaddress


for each $email in getemailaddresses("johndoe") ; define the username
? $email
next




Function getUserDN($username)
;http://www.rlmueller.net/NameTranslateFAQ.htm
Dim $objTrans
$objTrans = CreateObject("NameTranslate")
if @error
exit @error
else
$objTrans.Init(3, "")
$objTrans.Set(3, @ldomain + "\" + $username)
$getUserDN = $objTrans.Get(1)
if @error
exit @error
endif
endif
EndFunction


function GetEmailAddresses(optional $user)
dim $addys[0], $objuser, $objsysinfo, $email, $i
if $user
$ObjUser=GetObject("LDAP://" + GetUserDN($user))
else
$objSysInfo = CreateObject("ADSystemInfo")
$objUser=getobject("LDAP://" + $objSysInfo.UserName)
endif
For each $email in $objUser.proxyAddresses
select
case left($email,4)=="SMTP"
$addys[0]=right($email,-5)
case left($email,4)=="smtp"
$i=$i+1
redim preserve $addys[$i]
$addys[$i]=right($email,-5)
endselect
Next
$GetEmailAddresses=$addys
endfunction



function SetDefaultEmailAddress($defaultemail,optional $user)
dim $addys[0], $objuser, $objsysinfo, $email, $i
if $user
$ObjUser=GetObject("LDAP://" + GetUserDN($user))
else
$objSysInfo = CreateObject("ADSystemInfo")
$objUser=getobject("LDAP://" + $objSysInfo.UserName)
endif
For each $email in $objUser.proxyAddresses
select
case right($email,-5)=$defaultemail
$addys[0]="SMTP:" + $defaultemail
case left($email,4)="smtp"
$i=$i+1
redim preserve $addys[$i]
$addys[$i]="smtp:" + right($email,-5)
case 1
$i=$i+1
redim preserve $addys[$i]
$addys[$i]=$email
endselect
Next
if $addys[0]
;$setdefaultemailaddress=$addys
$objUser.proxyAddresses=$addys
$objUser.setinfo
endif
endfunction