CHAPTER 4

SIMS Configuration Files




The following SIMS configuration files are covered in this chapter:

"The ims.cnf File" on page 255
"The sims.cnf File" on page 260
"The imdmc.cnf File" on page 262
"The imta.cnf File" on page 263


The ims.cnf File

The ims.cnf file is the configuration file for the Sun Internet Mail Server (SIMS) Message Store and Message Access components. The ims.cnf file contains configuration parameters for the Message Store and Message Access utilities.

To make configuration changes to the ims.cnf file, you can either edit the file manually or use the SIMS administration console. It is recommended that you use the SIMS administration console rather than editing the ims.cnf file manually.

Any changes made to the Message Store paths should be made when no Message Store utilities are running.

Each entry in the ims.cnf file has the form:

ims-parameter-name: value

The parameters are broken down into the following categories: Message Store paths, Message Store file system parameters, Message Store delivery parameters, and Message Access parameters. The parameters are described in the following sections.


Message Store Paths

TABLE 4-1 describes the parameters for the Message Store paths.

TABLE  4-1   Message Store Paths Parameters
Parameter
Description

ims-user-root  

Path to the per-user files. The default is /var/opt/SUNWmail/ims/user.  

ims-index-root  

Path to the index files. The default is /var/opt/SUNWmail/ims/index.  

ims-data-root  

Path to the data files. The default is /var/opt/SUNWmail/ims/data.  

ims-hash-root  

Path to the hashing indices. This path is currently unused but must exist. The default is /var/opt/SUNWmail/ims/hash.  

ims-adm-root  

Path to where the files and reports are written by the imcheck utility. Also path where internal lock files and Legato (Solstice Backup) directory reside. The default is /var/opt/SUNWmail/ims/adm.  

ims-shared-root  

Path to shared mailboxes. The default is /var/opt/SUNWmail/ims/shared.  


Message Store File System

TABLE 4-2 describes the parameters for the Message Store file system.

TABLE  4-2   Message Store File System Parameters
Parameter
Description

ims-owner  

Solaris owner of all the Message Store files. The default is inetmail.  

ims-init-interval  

Number of days to create at initialization. The default is 30.  

ims-augment-interval  

Number of days to create at one time. The default is 30.  


Message Store Delivery

TABLE 4-3 describes the parameters for the Message Store delivery utility (ims_master).

TABLE  4-3   Message Store Delivery Parameters
Parameter
Description

ims-mail-host  

The default domain for parsing an email address when no @domain is present. The default is localhost.  

ims-parse-level  

Level of parsing for incoming messages. 1=POP-only store and 3=IMAP or POP3. The level must not go from 3 to 1. The default is 3.  

ims-quota  

Specifies whether per-user quotas are enforced. The default is OFF or ON.  

ims-default-quota  

Default quota in bytes for users. This value is used if the information is not provided in the directory. The default is 20000000.  


Message Access

TABLE 4-4 describes the parameters for the Message Access utility (imaccessd).

TABLE  4-4   Message Access Parameters 
Parameter
Description

ims-varmail  

ON specifies that users can access mailboxes in the /var/mail format in addition to the SIMS Message Store format. The default is OFF. /var/mail is only supported in the default domain and not in hosted domains.  

ims-maxconnections  

Number of connections that can be simultaneously supported by the message access server. The default is 10000.  

ims-proxy  

Specifies the proxy behavior of the message access server.

  • OFF specifies the proxy is disabled--local users have access.
  • ON specifies the proxy is enabled--local and proxy users have access.
  • ONLY specifies that the server is only a proxy--no local store access.
  •  

    ims-caps-proxy  

    Specifies the IMAP4 capabilities advertised by imaccessd when the proxy behavior is ON or ONLY. The default is IMAP4 IMAP4rev1.  

    ims-bind-address  

    Specifies the interface (IP address or host name) and ports that are listened to during POP and IMAP connections. The value of ims-bind-address is in the form:

    [hostname[=domain]][(service=port1[,port2,...][:service=port3[,port4,...]...])]

    This parameter can appear multiple times in the ims.cnf file.

  • hostname is a host name or IP address to listen to when binding sockets in the message access server. If hostname is not specified, or if the value is *, INADDR_ANY is used.
  • domain is the default search domain associated with the hostname and port(s).
  • service can be specified as imap, pop3, imaps, or pop3s. If no service or ports are specified, the default ports are fetched from /etc/services.
  • port is one or more TCP port numbers to listen to for the specified service. Specifying a port as 0 denotes that the service is not supported on that particular server.
  •  

    ims-client-lookup  

    Enables or disables the reverse DNS lookup for the clients that are logged in. The valid options are DNSON or DNSOFF (default. When the value is set to DNSOFF, only the client's IP address will be displayed.  

    ims-auth-timeout  

    Number of seconds after the user's last POP command before the server closes the POP connection. The usual pop client behavior is to download all messages available as fast as the server can send them and disconnect immediately. Unlike IMAP, inactive POP connections usually indicate a stale network connection, which should be terminated by the server. The default is 600 seconds (the minimum recommended in RFC 1939).  

    ims-pop-timeout  

    Number of seconds after the user's last POP command before the server closes the POP connection. The usual pop client behavior is to download all messages available as fast as the server can send them and disconnect immediately. Unlike IMAP, inactive POP connections usually indicate a stale network connection, which should be terminated by the server. The default is 600 seconds (the minimum recommended in RFC 1939).  

    ims-pop-exclusive  

    Disables concurrent access to a mailbox through pop. When this value is set to ON a user logging in through pop to the server while an active session already exists that accesses the same mailbox will not be able to view or download any messages.  

    ims-ldap-failover-timeout  

    Number of seconds allowed to successfully bind to a given ldap server. The default value is 30 seconds.  

    ims-ldap-request-timeout  

    Number of seconds allowed to search for an ldap server that can be successfully opened and bound to. This value is also the timeout for the ldap_search. The default value is 60 seconds.  


    APOP Parameters



    TABLE  4-5   APOP Parameters
    Parameter
    Description

    ims-md5auth-enable  

    Turns on or off the APOP login function. ON specifies that APOP login is allowed for users with a plaintext password in LDAP. When the value is set to OFF, APOP login is not allowed. The default is OFF. This parameter must be changed manually. You cannot change it using the SIMS Administration Console.  


    popb4smtp Parameters



    TABLE  4-6   popb4smtp Parameters
    Parameter
    Description

    ims-popb4smtp-lib  

    Enables the POP3 before the SMTP mechanism. Set the value to the full path specification of libimpopb4smtp. For example:

    ims-popb4smtp-lib:/opt/SUNWmail/lib/libimpopb4smtp.so.1

    This configuration variable does not have a default value, that is, if this variable is not set, popb4smtp is not turned on. This parameter must be changed manually. You cannot change it using the SIMS Administration Console.  

    ims-popb4smtp-timeout  

    Specifies the timeout value for popb4smtp entries in the IMTA database. The default value is fifteen minutes. If the value is set to zero, no new entry will be made to the IMTA database for the POP3 before SMTP. The following format is used for timeout:

  • D or d specifies days
  • H or h specifies hours
  • M or m specifies minutes
  • S or s specifies seconds
  • For example, 1d2H3m4S specifies a time period of 1 day, 2 hours, 3 minutes, and 4 seconds. This parameter must be changed manually. You cannot change it using the SIMS Administration Console.  


    The sims.cnf File

    The sims.cnf file contains configuration parameters used by more than one component in the SIMS. The configuration file consists of lines of characters in the ASCII character set, terminated by line-feed characters.

    This file has three types of lines:

    Whitespace. Consists only of spaces, tabs, blank lines, and the terminating line-feed. Whitespace is ignored.
    Comment lines. The first character of a comment line is a # character. Comment lines are ignored.
    Parameter lines. Consist of a parameter name, and equal sign, and the value for the parameter. Parameter names consist of one or more alphanumeric characters (upper and lower cases permitted) and should not contain any whitespace. The parameter line must begin in column 1.

    Each entry has the form:

    parameter-name=value
    

    If a line begins with whitespace, it must consist only of whitespace. Such a line is not a comment because it a # does not appear in column 1, and is not a parameter line because a parameter name does not start in column 1.

    The following is a sample sims.cnf file:



    dcRoot=o-internet
    adminBindDN=uid=ISPAdministrator,dc=isp,dc=com,o=internet
    loginSeparator=+
    domainHostingMode=multiple
    ldapServer=ldap1:888,masterldap,lastresort


    Note - To change the information in the sims.cnf file, use the imedit utility to prevent concurrent updates from leaving the file in an unexpected state.



    TABLE  4-7   sims.cnf File Parameters 
    Parameter
    Description

    adminBindDN  

    Administrative user to bind when performing administrative functions.  

    dcRoot  

    Search base for looking up objects in the DC tree. For example: dcRoot=o=internet  

    defaultDomain  

    Users logging in without a loginSeparator in their userid are assumed to be in this domain. The default search base for LDAP queries is determined by converting the defaultDomain name to the corresponding entry in the DC tree. The default is the DNS canonical name for this host, leaving off the first host name component. For a canonical name of xyz.bar.stream.com the default defaultDomain is bar.stream.com.

    For a search base of dc=stream,dc=com,o=internet an example parameter entry is:

    defaultDomain=stream.com  

    ldapServer  

    Specifies a comma-separated list (no whitespace) of LDAP server locations. An LDAP server location is either hostname=portnumber or host name. If only a host name is specified, the port number is the default LDAP port 389. The port number is specified in decimals numbers. The default is localhost:389. For example:

    ldapServer=localhost:389  

    logicalHostname  

    The logical host name of the system. No default value. This value must be filled in during installation. For example: logicalHostname=mail.stream.com  

    loginSeparator  

    The characters use to separate the user id from the domain name when logging in to the IMAP or POP server. There are no restrictions on the login separator. The installation can select any string of non-whitespace graphic characters that is not a substring of a valid user id. No default value. If the value is not set, users cannot log in using the uid<separator>domainname syntax. For example:

    loginSeparator=+  

    osiRoot  

    Search base for looking up objects in the OSI tree. No default value. This value must be set during installation if the OSI tree will be used. For example:

    osiRoot=c=us  

    spmProgramNumber  

    RPC program number to use to access the SPM. For example:

    spmProgramNumber=101234  

    spmServer  

    Host name to use to locate the SPM RPC service. The default value is localhost. For example: spmServer=spmhost.stream.com  


    The imdmc.cnf File

    The imdmc.cnf file contains configuration parameters used by the Delegated Management component in the Sun Internet Mail Server.

    This file has three types of lines:

    Whitespace. Consists only of spaces, tabs, blank lines, and the terminating line-feed. Whitespace is ignored.
    Comment lines. The first character of a comment line is a # character. Comment lines are ignored.
    Parameter lines. Consist of a parameter name, and equal sign, and the value for the parameter. Parameter names consist of one or more alphanumeric characters (upper and lower cases permitted) and should not contain any whitespace. The parameter line must begin in column 1.

    Each entry has the form:

    parameter-name=value
    

    If a line begins with whitespace, it must consist only of whitespace. Such a line is not a comment because it a # does not appear in column 1, and is not a parameter line because a parameter name does not start in column 1.

    The following is a sample imdmc.cnf file:

    spmServer=machine1.eng.sun.com
    ws-port=80
    document-root=/opt/SUNWmail/html
    cgi-bin=/opt/SUNWmail/cgi-bin


    Note - To change the information in the imdmc.cnf file, use the imedit utility to prevent concurrent updates from leaving the file in an unexpected state.



    TABLE  4-8   imdmc.cnf File Parameters 
    Parameter
    Description

    spmServer  

    Fully qualified domain name of machine where DM server resides and runs.  

    ws-port  

    The Web server port number. This port number is necessary for the CGI component of the Delegated Management console to work.  

    document-root  

    The location of the SIMS document root directory. If the SUNWimdmr package was installed manually with a pkgadd on a machine with only a Web server and no other SIMS components, you will need to manually configure your Web server to point to the location of the package's html files with a symbolic link of a "sims" in your Web server DOCUMENT ROOT directory to $BASEDIR/html of the SUNWimdmi package.  

    cgi-bin  

    The location of the SIMS cgi-bin directory. If the SUNWimdmr package was installed manually with a pkgadd on a machine with only a Web server and no other SIMS components, you will need to manually configure your Web server to point to the location of the package's cgi-bin files with a symbolic link of a "sims" in your Web server CGI-BIN directory to $BASEDIR/cgi-bin of the SUNWimdmp package.  


    The imta.cnf File

    The following is a default IMTA configuration file (imta.cnf) for a system not directly connected to the public internet (stream.bridge.net) that has a routability scope of the mail server domains (bridge.net).

    ! VERSION=1.2
    
    ! Modified by SIMS administration server on: Fri Mar 05 10:44:33
    
    ! PST 1999
    
    !
    
    ! IMTA configuration file 
    
    ! 
    
    ! part I : rewrite rules 
    
    ! 
    
    ! DNS canonicalization rules.  Uncomment this line to enable DNS 
    
    ! address canonicalization. 
    
    ! Please refer to the SIMS documentation for details 
    
    !</etc/opt/SUNWmail/imta//dns_canonical.rules
    
    ! 
    
    ! Domain Rewrite Rules.
    
    ! Uncomment this line to use domain rewrite rules
    
    ! from the configuration file instead of the domain database.
    
    ! Please refer to the SIMS documentation for details
    
    ! </tmp/newconfig/domains.rules
    
    ! 
    
    ! Rules to select local users
    
    stream.bridge.net $U%stream.bridge.net@stream.bridge.net
    
    mailhost.eng.company $U%stream.bridge.net@stream.bridge.net
    
    mailhost.eng $U%stream.bridge.net@stream.bridge.net
    
    mailhost $U%stream.bridge.net@stream.bridge.net
    
    eng.company.com $E$U%$D@stream.bridge.net
    
    eng $U%eng.company.com@stream.bridge.net
    
    ! 
    
    ! sims-ms
    
    .sims-ms-daemon $E$U%$H.sims-ms-daemon@sims-ms-daemon
    
    ! native
    
    .native-daemon $E$U%$H.native-daemon@native-daemon
    
    ! 
    
    ! pipe
    
    .pipe-daemon $E$U%$H.pipe-daemon@pipe-daemon
    
    ! 
    
    ! tcp_intranet
    
    .eng.company.com $E$U%$H.eng.company.com@tcp_local-daemon
    
    * $U%$&0.eng.company.com@tcp_local-daemon
    
    .eng $U%eng.company.com@tcp_local-daemon
    
    ! tcp_default_router 
    
    ! Rules for top level internet domains
    
    </etc/opt/SUNWmail/imta//internet.rules
    
    . $E$U%$H@tcp-daemon
    
    ! 
    
    ! reprocess
    
    reprocess $E$U%reprocess.stream.bridge.net@reprocess-daemon
    
    reprocess.stream.bridge.net 
    $E$U%reprocess.stream.bridge.net@reprocess-daemon
    
    ! 
    
    ! process
    
    process $E$U%process.stream.bridge.net@process-daemon
    
    process.stream.bridge.net $E$U%process.stream.bridge.net@process-
    daemon
    
    ! 
    
    ! defragment
    
    defragment $E$U%defragment.stream.bridge.net@defragment-daemon
    
    defragment.stream.bridge.net 
    $E$U%defragment.stream.bridge.net@defragment-daemon
    
    ! 
    
    ! conversion
    
    conversion $E$U%conversion.stream.bridge.net@conversion-daemon
    
    conversion.stream.bridge.net 
    $E$U%conversion.stream.bridge.net@conversion-daemon
    
    ! 
    
    ! bitbucket
    
    bitbucket $E$U%bitbucket.stream.bridge.net@bitbucket-daemon
    
    bitbucket.stream.bridge.net 
    $E$U%bitbucket.stream.bridge.net@bitbucket-daemon
    
    ! 
    
    ! deleted
    
    deleted-daemon $E$F%$H@deleted-daemon
    
    .deleted-daemon $E$F%$H@deleted-daemon
    
    ! 
    
    ! inactive
    
    inactive-daemon $E$F%$H@inactive-daemon
    
    .inactive-daemon $E$F%$H@inactive-daemon
    
    ! 
    
    ! hold
    
    hold-daemon $E$F%$H@hold-daemon
    
    .hold-daemon $E$F%$H@hold-daemon
    
    ! 
    
    ! part II : channel blocks 
    
    ! 
    
    ! delivery channel to local /var/mail store
    
    l noswitchchannel copywarnpost copysendpost postheadonly charset7 us-
    ascii charset8 iso-8859-1 subdirs 20 immnonurgent logging 
    viaaliasrequired notices 1 2 4 7 serviceall
    
    stream.bridge.net
    
    ! 
    
    ! sims-ms
    
    sims-ms queue single_job copywarnpost copysendpost postheadonly 
    noswitchchannel charset7 us-ascii charset8 iso-8859-1 subdirs 20 
    immnonurgent logging serviceall master_debug slave_debug
    
    sims-ms-daemon
    
    ! 
    
    ! native
    
    native copywarnpost copysendpost postheadonly noswitchchannel 
    charset7 us-ascii charset8 iso-8859-1 subdirs 20 immnonurgent logging 
    serviceall
    
    native-daemon
    
    ! 
    
    ! pipe
    
    pipe single subdirs 20 copywarnpost copysendpost postheadonly 
    immnonurgent noswitchchannel logging notices 1 2 4 7 serviceall
    
    pipe-daemon
    
    ! 
    
    ! tcp_intranet
    
    tcp_local smtp single_sys subdirs 20 copywarnpost copysendpost 
    postheadonly immnonurgent noreverse logging notices 1 2 4 7 
    master_debug slave_debug
    
    tcp_local-daemon stream.bridge.net
    
    ! 
    
    ! tcp_default_router
    
    tcp_default_router smtp daemon smarthost.eng.company.com 
    copysendpost copywarnpost postheadonly subdirs 20 immnonurgent 
    logging notices 1 2 4 7 master_debug slave_debug
    
    tcp-daemon stream.bridge.net
    
    
    
    
    ! 
    
    ! reprocess
    
    reprocess copywarnpost copysendpost postheadonly
    
    reprocess-daemon
    
    ! 
    
    ! process
    
    process copywarnpost copysendpost postheadonly
    
    process-daemon
    
    ! 
    
    ! defragment
    
    defragment copywarnpost copysendpost postheadonly
    
    defragment-daemon
    
    ! 
    
    ! conversion
    
    conversion copywarnpost copysendpost postheadonly
    
    conversion-daemon
    
    ! 
    
    ! bitbucket
    
    bitbucket copywarnpost copysendpost postheadonly
    
    bitbucket-daemon
    
    ! 
    
    ! deleted
    
    deleted logging
    
    deleted-daemon
    
    ! 
    
    ! inactive
    
    inactive logging
    
    inactive-daemon
    
    ! 
    
    ! hold
    
    hold logging
    
    hold-daemon
    

    The imta.cnf file defines several channels. The default channels defined in the sample default imta.cnf file are described in TABLE 4-9.

    TABLE  4-9   The imta.cnf Channel Descriptions  
    Channel
    Description

    l  

    The local (l) channel is used to deliver messages to addresses on the local host. Message files queued to the l channel are delivered to local users by the local channel program l_master. The slave program /opt/SUNWmail/imta/bin/sendmail is invoked to queue the message to the appropriate queues.  

    sims-ms  

    The sims-ms channel is used to deliver messages to the SIMS Message Store. Message files queued to this channel are delivered by the ims_master program  

    pipe  

    Pipe channels are used to perform delivery via a site-supplied program or script. Commands executed by the pipe channel are controlled by the administrator via the imta program interface. Pipe channels are also used by the autoreply program.  

    tcp_intranet

    tcp_local

    tcp_default_router  

    Implement SMTP over TCP/IP. The multithreaded TCP SMTP channel includes a multithreaded SMTP server that runs under the control of the IMTA SMTP Dispatcher. Outgoing SMTP mail is processed by the channel program tcp_smtp_client, and run as needed under the control of the IMTA Job Controller.  

    reprocess  

    The intersection of all other channel programs--they perform only operations that are shared with other channels. This is a channel queue whose contents are processed and requeued to other channels.  

    defragment  

    Provides the means to reassemble messages.  

    conversion  

    Performs body-part-by-body-part conversions on messages flowing through the IMTA.  

    bitbucket  

    Used for messages that need to be discarded.  

    inactive/deleted  

    Used to process messages for users who have been marked as inactive/deleted in the directory.  

    hold  

    Used to hold messages for users. For example, when a user is migrated from one mail server to another.  


    Address Rewrite Rules

    Addresses are rewritten by rewrite rules in the imta.cnf file to convert addresses to fully qualified domain addresses and to determine their corresponding channels. The result of rewriting is a rewritten address and a routing system, that is the system to which the message is to be sent.


    Address Rewrite Example

    The example in this section uses a mail message and takes it through the rewrite rules.

      1. A mail message arrives for jdoe@bridge.net.
      2. The imta.cnf file is scanned to find a match for the domain part of the address. If it matches any of the rules in the first rewrite rule section (rules to select local user or l channel), the user is looked up in the alias database. In this example,the address domain part matches rule four in the first section of rewrite rules.
      3. The alias cache is searched for the jdoe entry.
      4. The imta.cnf file is again scanned to find a match with the domain part of the address returned by the alias database search.



    Copyright© 1999 Sun Microsystems, Inc. All Rights Reserved.