Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
MAKEALIASES(8)		    Double Precision, Inc.		MAKEALIASES(8)

       makealiases - Create an alias database

       makealiases [-protocol=protocol]	[-alias=filename] [-src=pathname]
		   [-tmp=filename] [-chk] [-dump] [module]

       The Courier mail	server's /usr/local/etc/courier/aliases.dat file is a
       unified implementation of sendmail-style	address	aliasing, qmail-style
       virtual domains,	plus several Courier mail server-style enhancements.

       The term	aliasing refers	to substituting	one or more addresses for
       another address.	A one-to-one substitution results in the Courier mail
       server accepting	mail for one address, and delivering the mail to
       another address.	A one-to-many substitution results in the Courier mail
       server accepting	mail for one address, and delivering a separate	copy
       of the message to every address defined by the alias.

       /usr/local/etc/courier/aliases.dat is a binary database file.
       makealiases creates the binary database file by reading the aliases
       from plain text files, and makealiases creates
       /usr/local/etc/courier/aliases.dat by default.

       makealiases creates /usr/local/etc/courier/aliases.dat from one or more
       source files, which are plain text files	that may be created by any
       text editor. The	format of those	source files is	defined	below. By
       default,	makealiases obtains the	source text from
       /usr/local/etc/courier/aliases. If this is a text file, it is used
       verbatim. If this is a directory	(the Courier mail server creates it as
       a directory by default),	all the	non-hidden files in this directory are
       concatenated together.

	   Create filename, instead of /usr/local/etc/courier/aliases.dat.

	   Try to search for bad addresses used	in the aliases.dat file. This
	   option takes	some time to complete. It does not create an
	   aliases.dat file, but instead tries to check	every address
	   specified by	the source text	file. Why is this necessary? That's
	   because non-delivery	reports	will not be sent to the	sender for
	   failures in delivering mail to an aliased address. This is by
	   design. the Courier mail server considers aliases to	be private
	   mailing lists. Because non-delivery notices are not sent, bad
	   addresses will not be immediately detected.

	       The -chk	option is really effective for addresses which are
	       local, because there is no real way to determine	if a remote
	       mail address is valid.

	   Do not create aliases.dat, instead display the contents of the
	   alias database, in plain text form. The contents will be the
	   combined contents of	all the	source files, with all addresses
	   converted to	canonical format, with duplicates removed and
	   sub-aliases expanded.

	   Use pathname	instead	of /usr/local/etc/courier/aliases as the
	   source file.	 pathname can also refer to a directory. This
	   concatenates	every non-hidden file in the directory.

	   Use filename	as a temporary file, instead of
	   /usr/local/etc/courier/aliases.tmp.	makealiases requires a
	   temporary file for its own purposes,	which is automatically removed
	   when	done. This temporary file MUST reside on the same filesystem
	   as aliases.dat. If the -alias option	specifies a file on a
	   different filesystem, use this option to specify where to temporary
	   place a file	in the same filesystem.	Because	makealiases always
	   uses	the same name for a temporary file you cannot run more than
	   one makealiases process at the same time.

	   Use an alias	list that's private to messages	coming from protocol.
	   See below.

       The optional module specifies the module	whose rewriting	rules are used
       to convert E-mail addresses into	a canonical form. If not specified,
       the local module's address rewriting rules will be used.

       Addresses in /usr/local/etc/courier/aliases.dat will be checked in
       every message. Use the -protocol	option to create aliases that will be
       checked only for	message	that are received via a	specific protocol,
       such as ESMTP, UUCP, or locally-generated mail. This allows you,	for
       example,	to create an alias such	as "everyone", which is	only avaliable
       to locally generated mail, and does not work for	mail received via
       ESMTP. The argument to the -protocol option is one of: esmtp, uucp, or

       Protocol-specific alias files are
       /usr/local/etc/courier/aliases-protocol.dat, where "protocol" is	the
       specific	protocol, such as "local", "esmtp", or "uucp", and the source
       file read by makealiases	would be
       /usr/local/etc/courier/aliases-protocol.	If the -protocol option	is
       specified, makealiases will access these	files instead of
       /usr/local/etc/courier/aliases.dat and /usr/local/etc/courier/aliases.

       The sources file	used to	create the binary aliases.dat database are
       plain text files	that may be created using any editor.

       Each alias specification	takes the following form:

	   alias: address1, address2, ...

       Mail received by	the Courier mail server	addressed to alias will	be
       delivered to the	list of	addresses specified. The list of addresses may
       be split	across multiple	lines, if the second and subsequent line
       starts with a space character.

       Lines starting with the # character are ignored,	they are comments.

       alias is	not restricted to be a local address. It may be	any valid RFC
       2822[1] address.	All addresses do not necessary have to be in a
       canonical form.

	   alias: :include:/absolute/pathname

       This notation reads the list of addresses from another file,
       /absolute/pathname. This	file should contain one	address	per line
       (comma separated	addresses on the same line will	also work).

	   If alias refers to a	local, existing, account, this account will
	   never get any mail. Any mail	with the account listed	as recipient
	   will	be redirected to all the addresses specified for that alias.
	   To have a copy of the mail delivered	to the account,	define it as
	   one of the addresses	in the alias itself. For example:

	       larry: larry, moe, curly, shemp

	   Larry will still receive his	mail, but copies will will also	be
	   sent	to Moe,	Curly, and Shemp. If Larry wasn't specified in the
	   alias, he would never get any mail, it will all be forwarded	to
	   Moe,	Curly, and Shemp.

       Alias definitions may refer to other alias definitions, and makealiases
       automatically incorporates addresses from other aliases.	If the same
       address is listed in multiple aliases, and two or more of them are
       specified as recipients of the same message, only one copy of the
       message will be delivered to the	address.

       The following special syntax implements a virtual domain. A virtual
       domain redirects	all mail for an	entire domain to one user:

	   @domain: user

       This special entry results in any recipient address of the form
       foo@domain to be	rewritten as user-foo@me, where	me is the hostname of
       the machine, which we expect to be a local domain.

       The following examples use the alias entry " john",	and
       "" is in the control/me file. The address
       ""	becomes	"", and
       ""	becomes	"".

       The intended behavior is	to use an actual account named john. As	a
       result of the virtual domain address rewriting, delivery	instructions
       for can now be specified by john's
       $HOME/.courier-postmaster file, and delivery instructions for may be specified by $HOME/.courier-sales-info.
       john's $HOME/.courier-default may be used to specify delivery
       instructions for	any other address in the domain, which
       does not	have an	explicit .courier file.

       If the alias entry was " john-example", the	corresponding
       files in	john's $HOME directory are .courier-example-postmaster,
       .courier-example-sales-info, and	.courier-example-default. See dot-
       courier(5)[2] for more information on .courier files.

	   Virtual domain rewriting is NOT recursive, unlike regular aliases.
	   For example:

	       tom: larry

	   You should explicitly expand	the alias out:

	       tom: larry-john

       The following notation associates an address directly with a mailbox,
       or with a program:

	   info: /var/shared/info

       Messages	addressed to "info" will be delivered to the mailbox or
       maildir /var/shared/info. A full	pathname must be specified.

	   info: | /usr/local/shared/info

       Mail addressed to "info"	will be	delivered to the indicated program.
       The program receives each message on standard input.

       Program/mailbox delivery	notation is primarily used to support legacy
       sendmail	aliases	entries. This is considered to be a legacy feature,
       and new installations should create a dot-courier(5)[2] file with the
       necessary delivery instructions.	In fact, aliases for programs or
       mailboxes is not	directly supported by the Courier mail server's
       aliasing	mechanisms. It's implemented by	having the makealiases script
       automatically create a .courier file, and point the alias address to

       See dot-courier(5)[2] for more information.

	   Unlike sendmail, the	Courier	mail server delivers as	user "courier"
	   (group courier) when	delivering to programs or mailboxes.

       The following notation allows mail addressed to a certain domain	to be
       forwarded via uucp:

	   @domain: uucp!bang!path!

       The trailing !  tells the Courier mail server not to append a dash, so
       user@domain gets	rewritten as uucp!bang!path!user, and not
       uucp!bang!path-user, which is probably not what you want.

       An alias	with only one address does not affect delivery status
       notification attributes of an E-mail message.

       An alias	with multiple addresses	is treated like	a private mailing
       list, as	defined	by RFC 1894[3].	If the message requests	a successful
       delivery	notification, the Courier mail server generates	a delivery
       status notification for the successful delivery to the aliased address,
       and each	alias recipient	address	will have DSNs set to NEVER.

       This has	nothing	to do with the Courier mail server's support for a
       Qmail-style alias account.

       owner-foo feature of sendmail's aliasing	is not supported.

       the Courier mail	server normally	tries to eliminate duplicate addresses
       listed as recipients for	the same message. Some mail servers are	not
       capable of delivering messages with multiple recipients,	and will
       transmit	a separate copy	of the same message addressed to each
       recipient. The Courier mail server can't	do anything in this case. Each
       copy of the same	original text is considered an individual, separate,

       Duplicate elimination can fail in certain rare circumstances, involving
       exotic features of RFC 2822[1] concerning case sensitivity.

       " jack, jill" is allowed, but strongly discouraged under
       the penalty of law.

       Because multiple-recipient aliases are treated like private mailing
       lists, failure DSNs are turned off, and a bad recipient address is
       hardly noticed by anyone.

       The makealiases command may execute while the Courier mail server is
       running,	and any	changes	take effect immediately. However, only one
       instance	of makealiases is permitted to run at the same time.


       Sam Varshavchik

	1. RFC 2822

	2. dot-courier(5)
	   [set	$man.base.url.for.relative.links]/dot-courier.html

	3. RFC 1894

	4. esmtpd(8)
	   [set	$man.base.url.for.relative.links]/esmtpd.html

Courier	Mail Server		  02/10/2011			MAKEALIASES(8)


Want to link to this manual page? Use this URL:

home | help