#
#	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@swtch.com

# 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' 'YOUR.MAIL.GATEWAY'" "'\2@\1'"
