nodename,domain,password,forename,surname,address,postcode,[tel] surname (4-24 chars + unique) org + "-securemail.org.uk" (not (org = null or datalength (org) = 0)) firstname (not (firstname = null or datalength (firstname) = 0)) lastname (not (lastname = null or datalength (lastname) = 0)) addr1 + "," + addr2 + "," + addr3 + "," + town + "," + country postcode (not (postcode = null or datalength (postcode) = 0)) worktel open cursor user_list as select * from users for each user in userlist check (firstname) check (lastname) check (addr) check (postcode) if datalength (user.surname) < 4 { continue } if datalength (user.surname) > 21 { user.surname = substring(user.surname,1,21) } if is_banned (user.surname) { continue } num = select count(*) from cag_users where nodename like next user