# The following shows the logic the lmsmptd will use to verify if
# a given user@hostname address is valid on a system

if hostname is contained in virtualdomains
	# virtualdomains line = hostname:prefix
	user = prefix-user

	if ~prefix/.qmail-user exists
		return user is valid
	elif ~prefix/.qmail-default exists
		if domain has specified user validation program
			run domain verification program with
			prefix-user@host as argument
			if return code is zero
				return user is valid
			else
				return user does not exist
			endif
		elif global user validation specified
			run global verification program with
			prefix-user@host as argument
			if return code zero
				return user is valid
			else
				return user does not exist
		else
			user exists (no way to verify)
		endif
	endif

else # !virtualdomain (user@hostname)
	# Check to see if the user is a system user
	tmpuser = user
	while tmpuser != <blank>
		if tmpuser is a system user
			# Might just return user is valid here 
			if ~tmpuser/.qmail-default exists
			or ~tmpuser/.qmail-ext exists
			or ~tmpuser/.qmail
				return user is valid
				return
		else
			strip "-ext" from of tmpuser 
			# ie user-ext -> user
			# or user -> <blank>
	endwhile
	
	# Check to see if there is an alias for this
	if user has a dash in it
		tmpuser = user
		prefix = text before final dash
		ext = text after final dash
		while tmpuser != <blank>
			if ~alias/.qmail-prefix-ext exists
			or ~alias/.qmail-prefix-default exists
				return user is valid
			else
				strip "-ext" from of tmpuser 
				# ie tmpuser-ext -> tmpuser
				# or tmpuser -> <blank>
			endif
		endwhile

		# No alias file found for name so does not exist 
		return user does not exist
	# No dash in name, just check for alias file
	elif ~alias/.qmail-tmpuser
		return user is valid
	endif
endif
