The alias file is called aliases.dat. Courier looks for
aliases.dat first in the
${COURIER_HOME}/$ARCH/lib/modules/MODULE directory. If not found,
Courier looks for aliases.dat in ${COURIER_HOME}/lib. This
lets you define aliases that can be mailed to only locally, or define system
wide aliases.
Please note that if lib/modules/MODULE/aliases.dat exists, and the
E-mail address is not found there, Courier wll try again using
lib/aliases.dat.
makealiasesaliases.dat file is created using the makealiases
program. The syntax makealiases is as follows:
makealiases -src=srcfile -tmp=tmpfile -auxtmp=auxtmpfile \ [ -alias=aliasfile ] [-dump] [module]The
src, tmp, and auxtmp parameters must be
specified. Either the alias parameter or the dump flag must
be specified.
srcfile is a text file with alias definitions. makealiases
uses two temporary files to create the aliases.dat file. You must
specify the names of those files using the tmp and auxtmp
parameters. aliasfile is the complete pathname to the final
aliases.dat file, which should be either in the lib
directory, or in the MODULE directory. tmpfile and
auxtmpfile must be on the same filesystem as aliasfile.
You may not have more than one instance of makealiases running at
the same time, using the same temporary files. makealiases
automatically removes the temporary files when done.
It is safe to run makealiases while Courier is running. The new
aliases.dat file takes effect immediately.
All E-mail addresses in srcfile are rewritten to the canonical
format. The optional module parameter specifies the module whose
rewriting functions are used. If not specified, it defaults to local,
so that you can specify addresses in srcfile without your local domain
name.
The -dump flag prevents the alias file from being created.
Instead, makealiases just rewrites all the addresses, removes the
duplicates, and displays the final alias list on standard output.
srcfile can be set to "-". makealiases will read alias
specifications from standard input.
An alias specification takes the form of:
alias: address1, address2, address3 ...
This specifies an alias whose name is alias. Mail that's sent to alias will be delivered to the specified list of addresses instead.
Instead of specifying an address, another alias can be used in its place, inserting the contents of the second alias list into the first alias list.
An alias specification may use mutiple lines. Start the second line with a tab character, or a space. For example:
everyone: john, steve, mary, alice, tom, harry, geneFor example, here's a three person organization. Gloria is in Sales, Steve is a system administrator, John does both sales and system administrators:
sales: john, gloria
sysadmin: steve, john
everyone: sales, sysadmin
This alias file specifies that mail addressed to 'sales', will be
delivered to the john and gloria accounts. Mail sent to 'sysadmin'
will be delivered to to the steve and john accounts. Mail
sent to 'everyone' will be delievered to steve,
john, and gloria. Although john is listed twice in
the everyone alias - once in the sales alias, and the second
time in the sysadmin alias - john will receive only one copy
of the message. The makealiases command (and the submit
command also), automatically eliminates duplicates. Running makealiases with
the -dump flag results in the following output.
everyone@example.com: john@example.com, gloria@example.com, steve@example.com
sysadmin@example.com: steve@example.com, john@example.com
sales@example.com: john@example.com, gloria@example.com
In this example, the local domain is '@example.com'. The makealiases
commands automatically converts all addresses to the canonical format.
The company grows in size, and it is now necessary for someone to be available 24 hours a day. Steve volunteers, and the following change is made:
sales: john, gloria
sysadmin: steve, john
everyone: sales, sysadmin
steve: steve, steve@domain.com
All mail sent to steve will now have a second copy mailed to
steve@domain.com, IN ADDITION to being delivered to the local
mailbox. steve@domain.com is Steve's Internet account at home. This
changes affects all mail sent to steve, not just to mail sent to one
of the defined aliases. Running makealiases with -dump now
results in the following output:
everyone@example.com: john@example.com, gloria@example.com, steve@example.com, steve@domain.com steve@example.com: steve@example.com, steve@domain.com sysadmin@example.com: steve@example.com, john@example.com, steve@domain.com sales@example.com: john@example.com, gloria@example.comThis kind of forwarding should really be implemented in the
.courier
delivery specification file in Steve's account. Although allowed, aliases
should never have the same name as a local account. Typically, you should
define aliases for postmaster, and mailer-daemon.
-dump flag-dump flag's output give an indication of
what makealiases does:
RW_RECIPIENT).
makealiases consists of all alias references resolved, so
the contents of all the defined aliases is just the end list of addresses.
-dump flag can be reread by makealiases (it's pretty safe to assume that if addresses are
already in canonical format, the rewrite function does nothing). Note
that some information is lost - namely if a list of addresses in an alias
actually came from another alias.
-dump flag is completely
random.
-dump may list the alias in
parts.
aliases.dat filealiases.dat file is a GDBM (or a DB) database. Unless the list of
addresses in a single alias is large, the layout is pretty basic. The GDBM/DB
database is keyed by the alias name, and the contents of the record are the
addresses defined by the alias. Each address is followed by a newline
character.
In order to prevent the GDBM/DB library from consuming excessive amounts of memory, if an alias defines a large list of addresses, the list is saved in multiple records. The key of the second record is the alias name, followed by a newline, followed by "1". If a third record is necessary, it's name is the alias name, followed by a newline, followed by a "2". And so on.
/etc/aliases fileAlthough Courier's implementation of aliases.dat may seem very
similar to sendmail's /etc/aliases file, there are some important
differences:
aliases.dat file. To deliver mail to a command, or append it to a
file, set aside a system mailbox, or a Qmail-style alias account, then create
an appropriate .courier file.
foo: \foo, bar" syntax is made redundant. Just use "foo:
foo, bar".
makealiases in
order for the address rewriting changes to become effective.