The following steps are performed by qmail to deliver mail to an address 
user@hostname:

if no @hostname then
	add default hostname to user to create user@hostname
endif

if hostname is in locals
	# local2local
	deliver locally to user@host

elif user@hostname in virtualdomains
	# local2virtual user
	virtual specifies user@hostname:prefix
	deliver locally to prefix-user@hostname

elif hostname in virtualdomains
	# local2virtual domain 
	virtual specifies hostname:prefix
	deliver locally to prefix-user@hostname

else
	# Relay delivery
endif

# Deliver mail locally to user@host
# where host can be [.*]-user@host
if user in qmail-users
	deliver message to user specified in qmail-users
else
check_user:
	if user is a system user
		and user has a non-zero UID
		and ~user is visible to qmailp
		and ~user owned by user
			# Delivery to user-ext@hostname 
			# where user is a system user
			if user has dash extension # eg. -ext
				if ~user/.qmail-ext present
					deliver with .qmail-ext
					return
				elif ~user/.qmail-default present
					deliver with .qmail-default
					return
				endif
			endif

			# Delivery to user@hostname
			if ~user/.qmail present
				deliver with .qmail
			else
				write message to ~/.Mailbox
			endif
	else
		strip off first trailing dash extension 
		# eg user-ext -> user
		if the string is not empty
			goto check_user
		else
			give control of the message to alias 
			run qmail-local to deliver to alias
			if ~alias/.qmail-user exist
			forward message to contents of .qmail-user
		else
			bounce message?
		endif
	endif
endif
