function chkEmail(theAddress) ' checks for a vaild email ' returns 1 for invalid addresses ' returns 1 for invalid addresses dim atCnt chkEmail = 0 ' chk length if len(mcstr(theAddress)) < 5 then ' a@b.c should be the shortest an ' address could be chkEmail = 1 ' chk format ' has at least one "@" elseif instr(theAddress,"@") = 0 then chkEmail = 1 ' has at least one "." elseif instr(theAddress,".") = 0 then chkEmail = 1 ' has no more than 3 chars after last "." elseif len(theAddress) - instrrev(theAddress,".") > 3 then chkEmail = 1 ' has no "_" after the "@" elseif instr(theAddress,"_") <> 0 and _ instrrev(theAddress,"_") > instrrev(theAddress,"@") then chkEmail = 1 else ' has only one "@" atCnt = 0 for i = 1 to len(theAddress) if mid(theAddress,i,1) = "@" then atCnt = atCnt + 1 end if next if atCnt > 1 then chkEmail = 1 end if ' chk each char for validity for i = 1 to len(theAddress) if not isnumeric(mid(theAddress,i,1)) and _ (lcase(mid(theAddress,i,1)) < "a" or _ lcase(mid(theAddress,i,1)) > "z") and _ mid(theAddress,i,1) <> "_" and _ mid(theAddress,i,1) <> "." and _ mid(theAddress,i,1) <> "@" and _ mid(theAddress,i,1) <> "+" and _ mid(theAddress,i,1) <> "-" then chkEmail = 1 end if next end if end function