Provided by: exim4-config_4.76-3ubuntu3_all bug


       update-exim4.conf - Generate exim4 configuration files.


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


              Enable verbose mode

              Show short help message and exit

              Do not remove comment lines from the output file.

              Remove comment lines from the output file. [Default]

       -o|--output file
              Write       output       to        file        instead        of

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


       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 /var/lib/exim4/config.autogenerated.

       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

              The octal file mode of the generated file.

              The  main  configuration  type.  One of “internet”, “smarthost”,
              “satellite”,  “local”,  “exim3manual”  or  “none”.   Sets  macro

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

              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. Sets macro DCreadhost.

              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

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

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


       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


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


       Andreas Metzler <ametzler at>
       Marc Haber <>