Connecting Unix to Demon

Author: Paul Civati (paul@xciv.org)
21Dec1996    PSC    Initial version.
02Mar1997    PSC    Added example configuration file with comments.
30Mar1997    PSC    Added anti-spam mail rejection, plus more notes.
16Jul1997    PSC    Added notes for 1.62 release enhancements.

Exim

  1. Installation
  2. Configuration
  3. Miscellaneous

1. INSTALLATION

Obtaining Exim:

Exim can be obtained from the primary ftp site:

Or the mirror on Sunsite UK:

At the time of writing Exim should compile for the following platforms: AIX, BSDI, DGUX, FreeBSD, HP-UX, IRIX, Linux, NetBSD, OpenBSD, DEC OSF1 (aka Digital UNIX), SCO, SunOS4, SunOS5, and Ultrix.

To build Exim follow the detailed explanation in exim-X.XX/doc/spec.txt, the simple run down is:

cd exim-X.XX
mkdir Local
cp src/EDITME Local/Makefile
cp exim_monitor/EDITME Local/eximon.conf
vi Local/Makefile
vi Local/eximon.conf
make
make install


2. CONFIGURATION

Configuration notes:

The following points detail changes/enhancements made over the default configuration file for use with a Demon dialup account.

Example configuration file:

[for Exim version 1.58 / 1.59]

Also available as a file.

######################################################################
#                  Runtime configuration file for Exim               #
######################################################################


# This is a default configuration file which will operate correctly in
# uncomplicated installations. Please see the manual for a complete list
# of all the runtime configuration options.


# This file is divided into several parts, all but the last of which are
# terminated by a line containing the word "end". The parts must appear
# in the correct order, and all must be present (even if some of them are
# in fact empty). Blank lines, and lines starting with # are ignored.



######################################################################
#                    MAIN CONFIGURATION SETTINGS                     #
######################################################################

# Specify your host's canonical name here. If this option is not set, the
# uname() function is called to obtain the name.

# primary_hostname =

# Specify the domain you want to be added to all unqualified addresses
# here. If this option is not set, the primary_hostname value is used.

# qualify_domain =

# If you want unqualified recipient addresses to be qualified with a different
# domain to unqualified sender addresses, specify the recipient domain here.
# If this option is not set, the qualify_domain value is used.

# qualify_recipient =

# Specify your local domains as a colon-separated list here. If this option
# is not set, the qualify_recipient value is used as the only local domain.
# If you do not want to do any local deliveries, uncomment the following line,
# but do not supply any data for it.

local_domains = "xciv.demon.co.uk:xciv.org"

# No local deliveries will ever be run under the uids of these users.

never_users = root

# If you want Exim to support the "percent hack" for all your local domains,
# uncomment the following line. This is the feature by which mail addressed
# to x%y@z (where z is one of your local domains) is locally rerouted to
# x@y and sent on. Otherwise x%y is treated as an ordinary local part.

# percent_hack_domains=*

# If you are running Exim under its own uid (recommended), then you should
# set up that uid as a trusted user by de-commenting the following and
# changing the name if necessary.

trusted_users = exim
trusted_groups = exim

# This is UID and GID that we run Exim as.

exim_user = exim
exim_group = exim

# These two options handle stripping of the extra comma separated fields
# that may be part of the GECOS field in the /etc/passwd file, Exim uses
# the GECOS field to beild the From: header for locally sent mail.

gecos_pattern = "^([^,]*),"
gecos_name = "$1"

# This option makes Exim queue incoming mail until we explicitly ask for
# it to be delivered.  This is needed for a dialup hosts so that mail is
# held and no delivery attempts are made until the dialup host is on-line.
# Delivery attempts can be made by invoking Exim with 'exim -v -q'.

queue_only

# Only accept incoming SMTP connections from our local LAN and Demon's
# mail hosts.

sender_net_accept = "192.168.1.0/255.255.255.0:194.217.242.0/255.255.255.0"

# Mail rejection (mainly useful for rejecting mail spam).
#
# Read from a file, one entry per line, and can be one of three forms:
# domain name   --  [eg. cyberpromo.com, matches *@cyberpromo.com]
# whole domain  --  [eg. *.cyberpromo.com, matches *@*.cyberpromo.com]
# user@domain   --  [eg. spammer@cyberpromo.com, single address match]

sender_reject = partial-lsearch;/usr/local/exim/reject.list

end



######################################################################
#                      TRANPORTS CONFIGURATION                       #
######################################################################

# This transport is used for local delivery to user mailboxes.

local_delivery:
  driver = appendfile;
  file = /var/mail/${local_part}

# This transport is used for handling pipe addresses generated by alias
# or .forward files. It has a conventional name, since it is not actually
# mentioned elsewhere in this configuration file.

address_pipe:
  driver = pipe;
  ignore_status,
  return_output

# This transport is used for handling file addresses generated by alias
# or .forward files. It has a conventional name, since it is not actually
# mentioned elsewhere in this configuration file.

address_file:
  driver = appendfile

# This transport is used for handling autoreplies generated by the filtering
# option of the forwardfile director. It has a conventional name, since it
# is not actually mentioned elsewhere in this configuration file.

address_reply:
  driver = autoreply

# This transport is used for delivering messages over SMTP connections.

smtp:
  driver = smtp;

end



######################################################################
#                      DIRECTORS CONFIGURATION                       #
######################################################################

# This director handles aliasing using a traditional /etc/aliases file.

system_aliases:
  driver = aliasfile;
  file = /etc/aliases,
  search_type = lsearch

# This director handles forwarding using traditional .forward files.
# If you want it also to allow mail filtering when a forward file
# starts with the string "# Exim filter", uncomment the "filter" option.

userforward:
  no_verify,
  driver = forwardfile;
  file = .forward,
# filter

# This director matches local user mailboxes.

localuser:
  driver = localuser,
  transport = local_delivery;

end



######################################################################
#                      ROUTERS CONFIGURATION                         #
######################################################################

# This router routes to remote hosts over SMTP using a DNS lookup with
# default options.

lookuphost:
  driver = lookuphost,
  transport = smtp;
#  pass_on_timeout;

# This router routes to remote hosts over SMTP by explicit IP address,
# given as a "domain literal" in the form [nnn.nnn.nnn.nnn]. The RFCs
# require this facility, which is why it is enabled by default in Exim.
# If you want to lock it out, set forbid_domain_literals in the main
# configuration section above.

literal:
  driver = ipliteral,
  transport = smtp;

end



######################################################################
#                      RETRY CONFIGURATION                           #
######################################################################

# This single retry rule applies to all domains and all errors. It specifies
# retries every 15 minutes for 2 hours, then increasing retry intervals,
# starting at 2 hours and increasing each time by a factor of 1.5, up to 16
# hours, then retries every 8 hours until 4 days have passed since the first
# failed delivery.

# Domain               Error       Retries
# ------               -----       -------

# *                      *           F,2h,15m; G,16h,2h,1.5; F,4d,8h

# Here we have a slightly adjusted retry configuration, as suggested in
# the Exim documentation for intermittently connected hosts.

*			*		F,5d,24h

end



######################################################################
#                      REWRITE CONFIGURATION                         #
######################################################################

# These are rewrite rules for outgoing mail, they are tailoured for
# re-writing mail correctly for a mail forwarding domain, but can be
# easily adjusted.

*@xciv.demon.co.uk	$1@xciv.org	Ffs
*@*.xciv.org		$1@xciv.org	Ffs

# End of Exim configuration file

5. MISCELLANEOUS

Resources:


Last modified: Wed Jul 16 19:10:59 BST 1997