bionic (8) update-exim4.conf.8.gz

Provided by: exim4-config_4.90.1-1ubuntu1.10_all bug

NAME

       update-exim4.conf - Generate exim4 configuration files.

SYNOPSIS

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

OPTIONS

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

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

       -h|--help
              Show short help message and exit

       --keepcomments
              Do not remove comment lines from the output file.

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

       --removecomments
              Remove comment lines from the output file. [Default]

       -v|--verbose
              Enable verbose mode

DESCRIPTION

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

       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.

EXAMPLES

       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

NOTES

       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.

CONFIGURATION VARIABLES

       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 specify 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:

       CFILEMODE
              The octal file mode of the generated file.

       dc_eximconfig_configtype
              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”
                     internet site; mail is sent and received directly using SMTP
              “smarthost”
                     mail sent by smarthost; received via SMTP or fetchmail
              “satellite”
                     mail sent by smarthost; no local mail
              “local”
                     local delivery only; not on a network
              “none” no configuration at this time

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

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

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

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

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

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

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

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

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

       dc_relay_nets
              A list of machines for which we serve as smarthost. Please note that 127.0.0.1 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.

       dc_smarthost
              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
              192.168.2.4 deliver to IPv4 host, tcp/25
              192.168.2.4::587 deliver to IPv4 host, tcp/587
              [192.168.2.4]::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.

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

BUGS

       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.

FILES

       /var/lib/exim4/config.autogenerated
              Exim's main configuration file

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

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

SEE ALSO

       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

AUTHOR

       Andreas Metzler <ametzler at debian.org>
       Marc Haber <mh+debian-packages@zugschlus.de>