Aliases
An alias is an alternative name. For electronic mail, you can use aliases to assign additional names to a user, to route mail to a particular system, to define mailing lists, to send e-mail through programs for processing, and to append e-mail messages to a file for later use.
You can create a mail alias for each user at your site to specify where the mail is stored. Providing a mail alias is like providing a mail stop as part of the address for an individual at a large corporation. If you do not provide the mail stop, the mail is delivered to a central address. Extra effort is required to determine where the mail is to be delivered within the building, and the possibility of error increases. For example, if two people named Kevin Smith work in the same building, the probability is high that each Kevin will receive mail intended for the other.
Use domains and location-independent addresses as much as possible when you create alias files. To enhance the portability and flexibility of alias files, make your alias entries as generic and system independent as possible. For ex_ample, if you have a user named ignatz on system oak in domain Eng.sun.com, create the alias as ignatz instead of ignatz@Eng or ignatz@oak. If the user ignatz changes the name of the system but remains within the engineering domain, you do not need to update any alias files to reflect the change in the system name.
When creating aliases that include users outside your domain, create the alias with the user name and the domain name. For example, if you have a user named smallberries on system privet in domain Corp.sun.com, create the alias as smallberries@Corp.
NOTE
You can set an option in the *.mc file that generates the sendmail.cf file to translate the e-mail address to a fully qualified domain namea domain name that contains all of the elements needed to specify where an electronic mail message should be delivered or where an NIS+ table is locatedwhen mail goes outside the user's domain. See Chapter 2, "Customizing sendmail Configuration Files" for more information.
Figure 4 shows how sendmail uses aliases. Programs that read mail, such as /usr/bin/mailx, can have aliases of their own, which are expanded before the message reaches sendmail.
Figure 4 How sendmail Uses Aliases
As system administrator, you should choose a policy for updating aliases and forwarding mail messages. You might set up an aliases mailbox as a place for users to send requests for mail forwarding and changes to their default mail alias. If your system uses NIS or NIS+, you can administer forwarding instead of forcing users to manage it themselves. A common mistake users make is to put a .forward file in the home directory of Host A that forwards mail to user@host-b. When the mail gets to Host B, sendmail looks up the user in the NIS or NIS+ aliases and sends the message back to user@host-a, resulting in a loop and more bounced mail.
Uses for Alias Files
You create mail aliases for global use in the NIS+ aliases table, in the NIS aliases map, or, if your site does not use a nameservice, in local /etc/mail/aliases files. You can also create and administer mailing lists with the same alias files.
Depending on the configuration of your mail services, you can administer aliases with the NIS or NIS+ nameservice to maintain a global aliases database or by updating all of the local /etc/mail/aliases files to keep them in sync. See Chapter 4, "Setting Up and Administering Mail Services" for information on how to create aliases.
In general, only the mail hub for an e-mail domain contains the full list of aliases. The client systems and gateways have no idea how to deliver e-mail to individuals. They forward or relay e-mail to the mail hub for handling. Unless you have multiple mail hubs, you don't need to put aliases into NIS or NIS+.
Creating User Aliases
Users can also create and use aliases. They can create aliases either in their local .mailrc file, which only they can use, or in their system's local /etc/mail/aliases file, which anyone can use. Users cannot create or administer NIS or NIS+ alias files. Users cannot administer the local /etc/mail/aliases file unless they have access to the root password on their system.
Including Files in Aliases
You can keep an alias list in a separate file and include a reference to it in the aliases file with the following syntax.
mailinglistname: :include:pathname
The following example includes an alias named engineers that is located in the /etc/mail/includes/engineers file.
engineers: :include:/etc/mail/includes/engineers
If you want to delegate the administration of aliases to others, use the chown command to change the ownership of the included file to the name of the user. Then, with the following syntax, create an alias that designates the owner of the alias.
owner-mailinglistname: username
mailinglistname is the name of the mailing list and username is the login name of the person responsible for administering the alias. The following example assigns ownership of the alias named engineers to user winsor.
owner-engineers: winsor
Individuals can then use the owner-engineers alias to send e-mail to the person responsible for administering the alias.
Sending Mail to Files and Programs
You also can have aliases send e-mail to files and programs.
The following example appends all e-mail sent to listings-log to /proj/dev/logs/listings-log.
listings-log: /proj/dev/logs/listings-log
The following example sends all e-mail sent to weblogs as standard input to the program /usr/local/bin/analyze-web-logs.
weblogs: "/usr/local/bin/analyze-web-logs"
For program aliases, the program must provide an appropriate exit status that is returned to sendmail; otherwise sendmail bouces all e-mails sent to this kind of aliases. sendmail is very picky about these return values. The appropriate values are listed in /usr/include/sysexits.h.
Syntax of Aliases
The following sections describe the syntax of NIS+, NIS, and .mailrc aliases.
NIS+ Aliases
The NIS+ aliases table contains all of the names by which a system or person is known, except for private aliases listed in users' local .mailrc files. The sendmail program can use the NIS+ Aliases database instead of the local /etc/mail/aliases files to determine mailing addresses. See the aliasadm(8) and nsswitch.conf(4) manual pages for more information.
The NIS+ aliases table has the following format.
alias: expansion [options# "comments"]
The NIS+ aliases table columns, are described in Table 6.
Table 6 Columns in the NIS+ Aliases Database
Column |
Description |
alias |
The name of the alias. |
expansion |
The value of the alias as it would appear in a sendmail /etc/aliases file. |
options |
Reserved for future use. |
comments |
Use to add specific comments about an individual alias. |
The NIS+ Aliases database should contain entries for all mail clients. You list, create, modify, and delete entries in the NIS+ Aliases database with the aliasadm command. If you are creating a new NIS+ aliases table, you must initialize the table before you create the entries. If the table already exists, no initialization is needed.
When creating alias entries, enter one alias per line. You should have only one entry that contains the user's system name. For example, you could create the following entries for a user named winsor on system castle.
winsor: janice.winsor jwinsor: janice.winsor janicew: janice.winsor janice.winsor: winsor@castle
You can create an alias for local names or domains. For example, an alias entry for the user fred, who has a mailbox on the system oak and is in the domain Trees, could have the following entry in the NIS+ aliases table.
fred: fred@Trees
To use the aliasadm command, you must be root, a member of the NIS+ group that owns the Aliases database, or the person who created the database.
See Chapter 4, "Setting Up and Administering Mail Services" for information on how to create NIS+ alias tables.
NIS Aliases
Aliases in the NIS aliases map have the following format.
name: name1, name2, . . .
.mailrc Aliases
Aliases in a .mailrc file have the following format.
alias aliasname name1 name2 name3 . . .
/etc/mail/aliases Aliases
Distribution list formats in a local /etc/mail/aliases file have the following format.
aliasname: name1,name2,name3 . . .
The aliases in the /etc/mail/aliases file are stored in text form. When you edit the /etc/mail/aliases file, run the newaliases program to create a DBM database to make the aliases available to the sendmail program in binary form.
The Solaris 8 release provides the new /usr/bin/praliases command that you can use to display the contents of the /etc/mail/aliases file as key:value pairs. If you specify an argument on the command line, the command displays any matching key:value pair.
The following example uses the praliases command to display all of the aliases on the system paperbark.
paperbark% praliases mailer-daemon:postmaster postmaster:root winsor:winsor@paperbark nobody:/dev/null ignatz:ignatz@paperbark @:@ paperbark%
The following example uses the praliases command with a username argument to display the alias for user ignatz.
paperbark% praliases ignatz ignatz:ignatz@paperbark paperbark%