Setting Up Mail Services
You can readily set up a mail service if your site does not
provide connections to email services outside your company or if your company is in a
single domain.
Mail requires two types of configurations for local mail. Refer to Figure 13-1 in
Local Mail Only for a representation of these configurations. Mail requires two more configurations for communication with
networks outside your domain. Refer to Figure 12-1 in Overview of the Hardware Components or Figure 13-2 in Local Mail and a Remote Connection
for a representation of these configurations. You can combine these configurations on the same system
or provide these configurations on separate systems. For example, if your mail host and mail
server functions are on the same system, follow the directions in this section for
setting up that system as a mail host. Then, follow the directions in this
section for setting up the same system as a mail server.
Note - The following procedures for setting up a mail server and mail client apply when
mailboxes are NFS mounted. However, mailboxes typically are maintained in locally mounted /var/mail directories,
which eliminates the need for the following procedures.
Refer to the following:
How to Set Up a Mail Server
No special steps are required to set up a mail server that is
only serving mail for local users. The user must have an entry in the
password file or in the namespace. Also, for mail to be delivered, the user
should have a local home directory for checking the ~/.forward file. For this reason, home
directory servers are often set up as the mail server. Hardware Components in Chapter 14, Mail Services (Reference)
provides more information about the mail server.
The mail server can route mail for many mail clients. This type of mail
server must have adequate spooling space for client mailboxes.
Note - The mail.local program automatically creates mailboxes in the /var/mail directory the first time a message
is delivered. You do not need to create individual mailboxes for your mail clients.
For clients to access their mailboxes, the /var/mail directory should be available for remote
mounting. Alternately, a service such as Post Office Protocol (POP) or Internet Message Access Protocol
(IMAP) should be available from the server. The following task shows you how to
set up a mail server by using the /var/mail directory. To provide configuration guidelines
for POP or IMAP is beyond the scope of this document.
For the following task, ensure that the /etc/dfs/dfstab file shows that the /var/mail directory is
exported.
- Become superuser or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
To configure a role with the Primary Administrator profile, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
- Stop sendmail.
# svcadm -t disable network/smtp:sendmail
- Check if the /var/mail directory is available for remote access.
# share
If the /var/mail directory is listed, proceed to step 5.
If the /var/mail directory is not listed or if no list appears, continue with
the appropriate substep.
- (Optional) If no list appears, start NFS services.
Follow the procedure, How to Set Up Automatic File-System Sharing, to use the /var/mail directory to start NFS services.
- (Optional) If the /var/mail directory is not included in the list, add the directory to
/etc/dfs/dfstab.
Add the following command line to the /etc/dfs/dfstab file.
share -F nfs -o rw /var/mail
- Make the file system available for mounting.
# shareall
- Ensure that your name service has been started.
- (Optional) If you are running NIS, use this command.
# ypwhich
For more information, refer to the ypwhich(1) man page.
- (Optional) If you are running NIS+, use this command.
# nisls
For more information, refer to the nisls(1) man page.
- (Optional) If you are running DNS, use this command.
# nslookup hostname
- hostname
Use your host name.
For more information, refer to the nslookup(1M) man page.
- (Optional) If you are running LDAP, use this command.
# ldaplist
For more information, refer to the ldaplist(1) man page.
- Restart sendmail.
# svcadm enable network/smtp:sendmail
How to Set Up a Mail Client
A mail client is a user of mail services with a mailbox on a
mail server. Additionally, the mail client has a mail alias in the /etc/mail/aliases
file that points to the location of the mailbox.
Note - You can also perform the task of setting up a mail client by using
a service such as Post Office Protocol (POP) or Internet Message Access Protocol (IMAP).
However, to provide configuration guidelines for POP or IMAP is beyond the scope of this
document.
- Become superuser on the mail client's system or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. To configure
a role with the Primary Administrator profile, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
- Stop sendmail.
# svcadm -t disable network/smtp:sendmail
- Ensure that a /var/mail mount point exists on the mail client's system.
The mount point should have been created during the installation process. You can use
ls to ensure that the file system exists. The following example shows the response that
you receive if the file system has not been created.
# ls -l /var/mail
/var/mail not found
- Ensure that no files are in the /var/mail directory.
If mail files do exist in this directory, you should move them so that
they are not covered when the /var/mail directory is mounted from the server.
- Mount the /var/mail directory from the mail server.
You can mount the mail directory automatically or at boot time.
- (Optional) Mount /var/mail automatically.
Add an entry such as the following to the /etc/auto_direct file.
/var/mail -rw,hard,actimeo=0 server:/var/mail
- server
Use the assigned server name.
- (Optional) Mount /var/mail at boot time.
Add the following entry to the /etc/vfstab file. This entry permits the /var/mail
directory on the mail server that is specified to mount the local /var/mail directory.
server:/var/mail - /var/mail nfs - no rw,hard,actimeo=0
The client's mailbox is automatically mounted whenever the system is rebooted. If you are
not rebooting the system, type the following command to mount the client mailbox.
# mountall
Caution - For mailbox locking and mailbox access to work properly, you must include the actimeo=0
option when mounting mail from an NFS server.
- Update /etc/hosts.
Edit the /etc/hosts file and add an entry for the mail server. This step is
not required if you are using a name service.
# cat /etc/hosts
#
# Internet host table
#
..
IP-address mailhost mailhost mailhost.example.com
- IP-address
Use the assigned IP addresses.
- example.com
Use the assigned domain.
- mailhost
Use the assigned mailhost.
For more information, refer to the hosts(4) man page.
- Add an entry for the client to one of the alias files.
Refer to Administering Mail Alias Files (Task Map) for a task map about administering mail alias files. Note that the
mail.local program automatically creates mailboxes in the /var/mail directory the first time a message
is delivered. You do not need to create individual mailboxes for your mail clients.
- Restart sendmail.
# svcadm enable network/smtp:sendmail
How to Set Up a Mail Host
A mail host resolves email addresses and reroutes mail within your domain. A good
candidate for a mail host is a system that provides your network with a
remote connection or connects your network to a parent domain. The following procedure shows you
how to set up a mail host.
- Become superuser on the mail host system or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. To configure
a role with the Primary Administrator profile, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
- Stop sendmail.
# svcadm -t disable network/smtp:sendmail
- Verify the host-name configuration.
Run the check-hostname script to verify that sendmail can identify the fully qualified
host name for this server.
% /usr/sbin/check-hostname
hostname phoenix OK: fully qualified as phoenix.example.com
If this script is not successful in identifying the fully qualified host name, you
need to add the fully qualified host name as the first alias for the
host in /etc/hosts.
- Update the /etc/hosts file.
Choose the step that is appropriate for you.
- (Optional) If you are using NIS or NIS+, edit the /etc/hosts file on the system
that is to be the new mail host.
Add the word mailhost and mailhost.domain after the IP address and system name
of the mail host system.
IP-address mailhost mailhost mailhost.domain loghost
- IP-address
Use the assigned IP address.
- mailhost
Use the system name of the mail host system.
- domain
Use the expanded domain name.
The system is now designated as a mail host. The domain should be identical
to the string that is given as the subdomain name in the output of
the following command.
% /usr/lib/sendmail -bt -d0 </dev/null
Version 8.13.1+Sun
Compiled with: LDAPMAP MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7
NAMED_BIND NDBM NETINET NETINET6 NETUNIX NEWDB NIS
NISPLUS QUEUE SCANF SMTP USERDB XDEBUG
============ SYSTEM IDENTITY (after readcf) ============
(short domain name) $w = phoenix
(canonical domain name) $j = phoenix.example.com
(subdomain name) $m = example.com
(node name) $k = phoenix
========================================================
See the following example of how the hosts file should look after these changes.
# cat /etc/hosts
#
# Internet host table
#
172.31.255.255 localhost
192.168.255.255 phoenix mailhost mailhost.example.com loghost
- (Optional) If you are not using NIS or NIS+, edit the /etc/hosts file on
each system in the network. Create the following entry.
IP-address mailhost mailhost mailhost.domain loghost
- Restart sendmail.
# svcadm enable network/smtp:sendmail
- Test your mail configuration.
See How to Test the Mail Configuration for instructions.
Note - For further information about mail hosts, refer to Hardware Components in Chapter 14, Mail Services (Reference).
How to Set Up a Mail Gateway
A mail gateway manages communication with networks outside your domain. The mailer on the
sending mail gateway can match the mailer on the receiving system.
A good candidate for a mail gateway is a system that is attached to
Ethernet and phone lines. Another good candidate is a system that is configured as
a router to the Internet. You can configure the mail host or another system
as the mail gateway. You might choose to configure more than one mail gateway
for your domain. If you have UNIX-to-UNIX Copy Program (UUCP) connections, you should configure the
system (or systems) with UUCP connections as the mail gateway.
- Become superuser on the mail gateway or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services. To configure a
role with the Primary Administrator profile, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
- Stop sendmail.
# svcadm -t disable network/smtp:sendmail
- Verify the host-name configuration.
Run the check-hostname script to verify that sendmail can identify the fully qualified
host name for this server.
# /usr/sbin/check-hostname
hostname phoenix OK: fully qualified as phoenix.example.com
If this script is not successful in identifying the fully qualified host name, you
need to add the fully qualified host name as the first alias for the
host in /etc/hosts. If you need help with this step, refer to Step 4 of
How to Set Up a Mail Host.
- Ensure that your name service has been started.
- (Optional) If you are running NIS, use this command.
# ypwhich
For more information, refer to the ypwhich(1) man page.
- (Optional) If you are running NIS+, use this command.
# nisls
For more information, refer to the nisls(1) man page.
- (Optional) If you are running DNS, use this command.
# nslookup hostname
- hostname
Use your host name.
For more information, refer to the nslookup(1M) man page.
- (Optional) If you are running LDAP, use this command.
# ldaplist
For more information, refer to the ldaplist(1) man page.
- Restart sendmail.
# svcadm enable network/smtp:sendmail
- Test your mail configuration.
See How to Test the Mail Configuration for instructions.
Note - For more information about the mail gateway, refer to Hardware Components in Chapter 14, Mail Services (Reference).
How to Use DNS With sendmail
The DNS name service does not support aliases for individuals. This name service does
support aliases for hosts or domains that use Mail Exchanger (MX) records and CNAME
records. You can specify host names, domain names, or both names in the DNS
database. For more information about sendmail and DNS, see Interactions of sendmail With Name Services in Chapter 14, Mail Services (Reference), or see the
System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).
- Become superuser or assume an equivalent role.
Roles contain authorizations and privileged commands. For more information about roles, see Configuring RBAC (Task Map) in System Administration Guide: Security Services.
To configure a role with the Primary Administrator profile, see Chapter 2, Working With the Solaris Management Console (Tasks), in System Administration Guide: Basic Administration.
- Enable DNS host lookups (NIS+ only).
Edit the /etc/nsswitch.conf file and remove the # from the hosts definition that
includes the dns flag. The host entry must include the dns flag, as
the following example shows, in order for the DNS host aliases to be used.
# grep hosts /etc/nsswitch.conf
#hosts: nisplus [NOTFOUND=return] files
hosts: dns nisplus [NOTFOUND=return] files
- Check for a mailhost and mailhost.domain entry.
Use nslookup to ensure that an entry exists for mailhost and mailhost.domain in the
DNS database. For more information, refer to the nslookup(1M) man page.
Setting Up a Virtual Host
If you need to assign more than one IP address to a host, see
this Web site: https://www.sendmail.org/virtual-hosting.html. This site provides complete instructions about how to use
sendmail to set up a virtual host. However, in the “Sendmail Configuration” section, do
not perform step 3b, as shown in the following.
# cd sendmail-VERSION/cf/cf
# ./Build mailserver.cf
# cp mailserver.cf /etc/mail/sendmail.cf
Instead, for the Solaris operating system, perform the following steps.
# cd /etc/mail/cf/cf
# /usr/ccs/bin/make mailserver.cf
# cp mailserver.cf /etc/mail/sendmail.cf
- mailserver
Use the name of the .cf file.
Building the sendmail.cf Configuration File outlines the same three steps as part of the build process.
After you have generated your /etc/mail/sendmail.cf file, you can continue with the next
steps to create a virtual user table.