Provided by: exim4-config_4.86.2-2ubuntu2.6_all bug


       update-exim4.conf - Generate exim4 configuration files.


       update-exim4.conf    [-v|--verbose]    [-h|--help]   [--keepcomments]   [--removecomments]
       [-o|--output file]


              Generate temporary configuration file, check its  validity  and  exit  with  either
              success  (exitcode  0)  or  an  error (exitcode 1). On success the temorary file is
              deleted, otherwise the file is left for further debugging.

       -d|--confdir directory
              Read input from directory instead of /etc/exim4.

              Show short help message and exit

              Do not remove comment lines from the output file.

       -o|--output file
              Write output to file instead of /var/lib/exim4/config.autogenerated.

              Remove comment lines from the output file. [Default]

              Enable verbose mode


       The    script    update-exim4.conf    generates    the    main     configuration     files
       /var/lib/exim4/config.autogenerated  for  Exim v4 by merging the data in the template file
       /etc/exim4/exim4.conf.template  or  the  ones  in  the  /etc/exim4/conf.d  directory  tree
       respectively     and     /etc/exim4/update-exim4.conf.conf     to    the    output    file

       If   dc_use_split_config   in   /etc/exim4/update-exim4.conf.conf   specifies   a    split
       configuration,  update-exim4.conf  processes  the  /etc/exim4/conf.d subdirectories in the
       order main, acl, router, transport, retry, rewrite and  auth.  Within  each  directory  it
       takes  files in lexical sort order by file name. It concatenates all these files and makes
       the debconf replacement described below.

       If   you   are   not   using   split    configuration    update-exim4.conf    concatenates
       /etc/exim4/exim4.conf.localmacros (if this file exists) and /etc/exim4/exim4.conf.template
       (in this order) and makes the debconf replacement described below.

       In either case,  before  outputting  the  result  to  /var/lib/exim4/config.autogenerated,
       update-exim4.conf  generates  a  number  of exim configuration macros from the contents of
       dc_something  from   /etc/exim4/update-exim4.conf.conf   and   inserts   them   into   the
       configuration   right   after   the   definition   of   the   exim   configuration   macro
       UPEX4CmacrosUPEX4C  (which  is  only  used  as  placeholder  for  this  case).  The  macro
       definitions  are  bracketed  with  .ifdef clauses to allow the local admin to override the
       values with  earlier  definitions.   update-exim4.conf  makes  no  other  changes  to  the
       configuration.   This  makes it very simple to make small changes to the configuration and
       still have the benefits of debconf.

       On the other hand if you don't want to manage exim4.conf with  debconf  install  your  own
       handcrafted  version  as  /etc/exim4/exim4.conf.  Exim will use this file if it exists and
       ignore   the   autogenerated    one.     Additionally    you    might    want    to    set
       dc_eximconfig_configtype=none  in  /etc/exim4/update-exim4.conf.conf  to stop debconf from
       asking you questions about exim4.

       update-exim4.conf exits silently and does nothing if /etc/exim4/exim4.conf exists  and  -o
       was    not    used    to    direct    the    output    to    a    different    file   than

       update-exim4.conf will only use files in the conf.d directory that have a  filename  which
       consists  only  of  letters,  numbers,  underscores  and hyphens ([:alnum:]_-), similar to
       run-parts(8).   Additionally,  update-exim4.conf  will  use  /etc/exim4/conf.d/foo/bar.rul
       instead  of /etc/exim4/conf.d/foo/bar if the .rul file exists. This is meant to be helpful
       for easy interaction with packages extending Exim.

       If  the  new  configuration  will  be  written   to   /var/lib/exim4/config.autogenerated,
       update-exim4.conf  will  check the validity of the freshly generated configuration. If the
       new   file   is    detected    as    invalid,    update-exim4.conf    leaves    the    old
       /var/lib/exim4/config.autogenerated untouched and exits with an error.

       However, there are still possible invalidities that can only be detected at run time. This
       most notably applies to errors in expressions that are expanded at run time.

       If the new configuration will be written to some other file, no validity  checking  occurs
       and that file will always be overwritten.


       You  want  to  be  able  to  check  exim's queue as normal user: Generate a new file, e.g.
       /etc/exim4/conf.d/main/40_local_mailq, containing only the line  queue_list_requires_admin
       = false


       update-exim4.conf  changes  the  file  permissions  of the output file to the value of the
       environment    variable    CFILEMODE.    If    CFILEMODE     is     neither     set     in
       /etc/exim4/update-exim4.conf.conf nor in the environment it defaults to 0644.  Change this
       to 0640 if you are keeping sensitive information (LDAP credentials et. al.) in there.


       All lists given in configuration variables are semicolon-separated. In the past, they used
       to  be  colon separated. This was changed to semicolon separation to make specification of
       IPv6 addresses easier.  Backwards compatibility is preserved, so that  old  configurations
       using  colons as separators do still work. Colons are deprecated and might stop working in
       a later release. If you need to specifiy a single IPv6 address in a field that is  defined
       as a list of host names or IP addresses, please prefix "<;" to explicitly specify the list
       separator as a semicolon. Otherwise, the code cannot tell an  IP  address  from  a  colon-
       separated list of strange host names.

       Using  lookups like "dsearch;something" in update-exim4.conf.conf has never been supported
       and does no longer work! If  you  need  this,  please  convert  to  directly  setting  the
       appropriate macros.

       update-exim4.conf evaluates these patterns in /etc/exim4/update-exim4.conf.conf:

              The octal file mode of the generated file.

              The main configuration type. Sets macro DC_eximconfig_configtype. The macro usually
              contains a shorthand for  one  of  the  choices  for  the  “General  type  of  mail
              configuration” debconf question (See README.Debian).

              dc_eximconfig_configtype <-> debconf configtype mapping:
                     internet site; mail is sent and received directly using SMTP
                     mail sent by smarthost; received via SMTP or fetchmail
                     mail sent by smarthost; no local mail
                     local delivery only; not on a network
              “none” no configuration at this time

              Boolean  option that controls whether the local mailname in the headers of outgoing
              mail should be hidden. (Only effective for “smarthost” and “satellite”. Sets  macro

              Internal use only Boolean option that is set by the maintainer scripts after adding
              the contents of /etc/mailname to the dc_other_hostnames list. This is a  transition
              helper  since it wouldn't otherwise be possible to see whether that domain name has
              been removed from dc_other_hostnames on  purpose.  This  is  not  used  by  update-
              exim4.conf, and no macro is set.

              Boolean option that controls whether update-exim4.conf strips the comments from the
              target configuration file (default) or leaves them in. This can  be  overridden  by
              the  command  line  options  --keepcomments  and --removecomments. The value is not
              written to an exim macro.

              name of the default transport for local mail delivery. Defaults  to  mail_spool  if
              unset, use maildir_home for delivery to ~/Maildir/. Sets macro LOCAL_DELIVERY.

              List  of IP addresses the Exim daemon should listen on. If this is left empty, Exim
              listens on all interfaces. Sets macro MAIN_LOCAL_INTERFACES only if there is a non-
              empty value.

              Boolean  option to activate some option to minimize DNS lookups, if set to “true” a
              macro DC_minimaldns is defined. If true, the macro DC_minimaldns is set to  1,  and
              the macro MAIN_HARDCODE_PRIMARY_HOSTNAME is set to the appropriately post-processes
              output of hostname --fqdn.

              is used to build the local_domains list, together with “localhost”.   This  is  the
              list   of  domains  for  which  this  machine  should  consider  itself  the  final
              destination. The local_domains list ends up in the macro MAIN_LOCAL_DOMAINS.

              For “smarthost” and “satellite” it is possible to hide the local  mailname  in  the
              headers  of  outgoing mail and replace it with this value instead, using rewriting.
              For “satellite” only, this value is also the host to send local mail to. Sets macro

              is  a  list  of  domains for which we accept mail from anywhere on the Internet but
              which are not delivered locally, e.g. because this machine serves as  secondary  MX
              for these domains. Sets MAIN_RELAY_TO_DOMAINS.

              A  list of machines for which we serve as smarthost. Please note that and
              ::1 are always permitted to relay since /usr/lib/sendmail is available  anyway  and
              relay control doesn't make sense here. Sets macro MAIN_RELAY_NETS.

              List  of  hosts  to  which  all  outgoing  mail is passed to and that takes care of
              delivering it. Each of the hosts  is  tried,  in  the  order  specified  (See  exim
              specification,  chapter  20.5).  All  deliveries  go  out  to  TCP port 25 unless a
              different port is specified after the host name, separated from the  host  name  by
              two  colons. Colons in IPv6 addresses need to be doubled. If a port number follows,
              IP addresses may be enclosed in brackets, which might be the  only  possibility  to
              specify delivery to an IPv6 address and a different port. Examples:
              host.domain.example deliver to host looked up on DNS, tcp/25
              host.domain.example::587 deliver to host looked up on DNS, tcp/587
     deliver to IPv4 host, tcp/25
     deliver to IPv4 host, tcp/587
              []::587 deliver to IPv4 host, tcp/587
              2001::0db8::f::4::::2 deliver to IPv6 host, tcp/25
              [2001::0db8::f::4::::2]::587 deliver to IPv6 host, tcp/587
              This is used as value of the DCsmarthost macro.

              Boolean     option     that     controls     whether     update-exim4.conf     uses
              /etc/exim4/exim4.conf.template   (“false”)   or   the    multiple    files    below
              /etc/exim4/conf.d (“true”) as input. This does not set any macros.

       The macro MAIN_PACKAGE_VERSION is set to Debian's Version number of
              the package being installed for convenient inclusion in the configuration.


       If  you  are running exim as daemon (as it is in the default setup of the Debian packages)
       you should not invoke update-exim4.conf directly when exim is running. For SMTP  receiving
       or  queue running, exim forks, and the new processes would use the new configuration file,
       while the original main exim daemon would still use the old configuration file. You should
       use invoke-rc.d exim4 restart instead.


       This  manual  page  needs  a major re-work. If somebody knows better groff than us and has
       more experience in writing manual pages, any patches would be greatly appreciated.


              Exim's main configuration file

              Optional manually managed Exim  main  configuration  file.  Takes  precedence  over
              debconf managed one if it exists.

              Configuration  file  being written by exim4-config maintainer scripts, which may be
              hand-edited, and is read as input by update-exim4.conf.


       exim(8), exim4-config_files(5),  /usr/share/doc/exim4-base/  and  for  general  notes  and
       details about interaction with debconf /usr/share/doc/exim4-base/README.Debian.gz


       Andreas Metzler <ametzler at>
       Marc Haber <>