System Administration Guide: Resource Management and Network Services

Setting Up Mail Services (Tasks)

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 25-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 24-1 in "Overview of the Hardware Components" or Figure 25-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 them 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.


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 name space, and the user should have a local home directory (for checking the ~/.forward file) for mail to be delivered. For this reason, home directory servers are often set up as the mail server. "Hardware Components" in Chapter 26, Mail Services (Reference) provides more information about the mail server.

The mail server can route mail for many mail clients. The only resource requirement for this type of mail server is that it have adequate spooling space for client mailboxes.


Note -

Either the /var/mail directory should be available for remote mounting or a service such as Post Office Protocol (POP) or Internet Message Access Protocol (IMAP) should be available from the server for clients to access their mailboxes. 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.

  1. Become superuser on the mail server or assume an equivalent role.

    For information about roles, refer to "Using Privileged Applications" in System Administration Guide: Security Services.

  2. Stop sendmail.


    # /etc/init.d/sendmail stop
    
  3. 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.

    1. (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.

    2. (Optional) If the /var/mail directory is not included in the list, add it to /etc/dfs/dfstab.

      Add the following command line to the /etc/dfs/dfstab file.


      share -F nfs -o rw /var/mail
      
  4. Make the file system available for mounting.


    # shareall
    
  5. Ensure that your name service has been started.

    1. (Optional) If you are running NIS, use this command.


      # ypwhich
      

      For more information, refer to the ypwhich(1) man page.

    2. (Optional) If you are running NIS+, use this command.


      # nisls
      

      For more information, refer to the nisls(1) man page.

    3. (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.

    4. (Optional) If you are running LDAP, use this command.


      # ldaplist
      

      For more information, refer to the ldaplist(1) man page.

  6. Restart sendmail.


    # /etc/init.d/sendmail start
    

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.


How to Set Up a Mail Client

A mail client is a user of mail services with a mailbox on a mail server and a mail alias in the /etc/mail/aliases file that points to the location of the mailbox. "Hardware Components" in Chapter 26, Mail Services (Reference) provides a brief description of a mail client.


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.


  1. Become superuser on the mail client's system or assume an equivalent role.

    For information about roles, refer to "Using Privileged Applications" in System Administration Guide: Security Services.

  2. Stop sendmail.


    # /etc/init.d/sendmail stop
    
  3. 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 you receive if the file system has not been created.


    # ls -l /var/mail
    /var/mail not found
  4. 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.

  5. Mount the /var/mail directory from the mail server.

    You can mount the mail directory automatically or at boot time.

    1. (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. 

    2. (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 any time the system is rebooted. If you are not rebooting the system, type the following command to mount the client mailbox.


      # mountall
      

      Caution - Caution -

      For mailbox locking and mailbox access to work properly, you must include the actimeo=0 option when mounting mail from an NFS server.


  6. 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.

  7. 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 -

    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.


  8. Restart sendmail.


    # /etc/init.d/sendmail start
    

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 connects your network to the outside world or to a parent domain. The following procedure shows you how to set up a mail host.

  1. Become superuser on the mail host system or assume an equivalent role.

    For information about roles, refer to "Using Privileged Applications" in System Administration Guide: Security Services.

  2. Stop sendmail.


    # /etc/init.d/sendmail stop
    
  3. 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/lib/mail/sh/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.

  4. Update the /etc/hosts file.

    Choose the step that is appropriate for you.

    1. (Optional) If you are using NIS or NIS+, edit the /etc/hosts file on the system that is assigned 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.12.0+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
    2. (Optional) If you are not using NIS or NIS+, edit the /etc/hosts file on each system in the network and create the following entry.


      IP_address mailhost mailhost mailhost.domain loghost
  5. Select the correct configuration file to copy and rename.

    The following command copies and renames the /etc/mail/main.cf file.


    # cp /etc/mail/main.cf /etc/mail/sendmail.cf
    
  6. Restart sendmail.


    # /etc/init.d/sendmail start
    
  7. Test your mail configuration.

    See "How to Test the Mail Configuration" for instructions.

For further information about mail hosts, refer to "Hardware Components" in Chapter 26, 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 or 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.

  1. Become superuser on the mail gateway or assume an equivalent role.

    For information about roles, refer to "Using Privileged Applications" in System Administration Guide: Security Services.

  2. Stop sendmail.


    # /etc/init.d/sendmail stop
    
  3. Select the correct configuration file to copy and rename.

    The following command copies and renames the main.cf file.


    # cp /etc/mail/main.cf /etc/mail/sendmail.cf
    
  4. 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/lib/mail/sh/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".

  5. Ensure that your name service has been started.

    1. (Optional) If you are running NIS, use this command.


      # ypwhich
      

      For more information, refer to the ypwhich(1) man page.

    2. (Optional) If you are running NIS+, use this command.


      # nisls
      

      For more information, refer to the nisls(1) man page.

    3. (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.

    4. (Optional) If you are running LDAP, use this command.


      # ldaplist
      

      For more information, refer to the ldaplist(1) man page.

  6. Restart sendmail.


    # /etc/init.d/sendmail start
    
  7. Test your mail configuration

    See "How to Test the Mail Configuration" for instructions.

For more information about the mail gateway, refer to "Hardware Components" in Chapter 26, 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 Exchange (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 26, Mail Services (Reference), or see the System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP).

  1. Become superuser or assume an equivalent role.

    For information about roles, refer to "Using Privileged Applications" in System Administration Guide: Security Services.

  2. 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:      nisplus dns [NOTFOUND=return] files
  3. 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.

How to Set Up a Virtual Host

If you need to assign more than one IP address to a host, see this Web site: http://www.sendmail.org/virtual-hosting.html. This site provides complete instructions on 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 environment, perform the following steps.


# cd /usr/lib/mail/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 (Task)" outlines these 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, and so forth.