#
#	sample rewrite file for systems that send mail to a mail server or gateway
#	for delivery.  we assume the mail server handles incoming messages.
#
#	by default the return address points to this system; set $site
#	to the name of the mail server that receives your mail.
#
#	replace YOURDOMAIN.DOM with the name of your domain.
#
#	in the last rule, $smtp is the name of the mail server.  set it
#	in the DNS database in $PLAN9/lib/ndb (see ndb(7)).

# translate local aliases from /mail/lib/namefiles
[^!@.]+			translate	"$PLAN9/bin/upas/aliasmail '&'"

# append the local domain to addresses without a domain
local!(.*)		alias		\1@YOURDOMAIN.DOM

# convert source domain address to a chain a@b@c@d...
@([^@!,]*):([^!@]*)@([^!]*)		alias	\2@\3@\1
@([^@!]*),@([^!@,]*):([^!@]*)@([^!]*)	alias	@\1:\3@\4@\2

# convert a chain a@b@c@d... to ...d!c!b!a
([^@]+)@([^@]+)@(.+)	alias		\2!\1@\3
([^@]+)@([^@]+)		alias		\2!\1

# send all mail to the gateway or mail server, $smtp,  for delivery
([^!]*)!(.*) 		| 		"$PLAN9/mail/lib/qmail '\s' 'YOURGATEWAY.DOM'" "'\2@\1'"
