[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now


What is the structure of Exim config files?

Posted on 2009-04-27
Medium Priority
Last Modified: 2012-05-06

I recently installed Exim to use as a front end box to separate our corporate email server from the Internet.  Works pretty well, but I need to make some changes to timeout values in the config file and I'm getting really confused.

I ran the package configuration and selected to keep everything in a single config file.  Most of the documents that I can find seem to point to point to a exim.conf file in the /etc/exim4 directory, however I cannot find this.

I "think" the config file is being built from the exim.conf.template file and some other information, but I'm not sure how and where it ends up.

Can anyone fill me in on how this all works, and where I need to go to edit the timeout values for exim and add the auto_thaw option?

Question by:Richie4236
  • 3
  • 2

Expert Comment

ID: 24243110

Exim's configuration file is in six parts, which must appear in the correct order in the file, separated by lines containing just the word `end'. These parts contain:

Main configuration settings.
Configuration settings for the transport drivers. Transports define mechanisms for copying messages to destinations.

Configuration settings for the director drivers. Directors process local addresses, that is, those with domains that match `local_domains'. These are typically (but not necessarily) delivered on the local host.
Configuration settings for the router drivers. Routers process remote addresses, that is, those with domains that do not match `local_domains'.

Retry rules, for use when a message cannot be immediately delivered.

Address rewriting rules.

Blank lines in the file are ignored, and lines starting with a # character are treated as comments and are also ignored. Note that a &&s character other than at the beginning of a line is not treated specially, and does not introduce a comment. A convenient way to create a configuration file is to start from the default, which is supplied in `src/configure.default', and add, delete, or change settings as required.

the timeout options and auto_thaw options are configurable in the main configuration file

accept_timeout option

Option: accept_timeout
Type: time
Default: 0s

This sets the timeout for accepting a non-SMTP message, that is, the maximum time that Exim waits when reading a message on the standard input. If the value is zero, it will wait for ever. This setting is overridden by the `-or' command option.

auto_thaw option

Option: auto_thaw
Type: time
Default: 0s

If this option is set to a non-zero time, a new delivery is attempted on frozen messages if this much time has passed since the message was frozen.

these options can also be passed as a part of exim commandline.

refer to exim command line reference at http://www.exim.org/exim-html-2.00/doc/html/spec_5.html

revert back if you still have issues in the exim

Author Comment

ID: 24243259
I'm still not sure I understand where the files are though, and how they are created.

I cannot locate a file called configure.default anywhere on my server.

Expert Comment

ID: 24243321

The main configuration file is usually called /etc/exim.conf or /etc/exim/config in most Linux distributions, or /usr/lib/exim/config in older configurations. You can find out where the configuration file is by running the command:
$ exim -bP configure_file

You may have to edit the configuration file to reflect values specific to your site. In most common configurations there isn't a great deal to change, and a working configuration should rarely have to be modified.

By default, Exim processes and delivers all incoming mail immediately. If you have relatively high traffic, you may instead have Exim collect all messages in the so-called queue, and process them at regular intervals only.

When handling mail within a TCP/IP network, Exim is frequently run in daemon mode: at system boot time, it is invoked from /etc/init.d/exim[1] and puts itself in the background, where it waits for incoming TCP connections on the SMTP port (usually port 25). This is beneficial whenever you expect to have a significant amount of traffic because Exim doesn't have to start up for every incoming connection. Alternatively, inetd could manage the SMTP port and have it spawn Exim whenever there is a connection on this port. This configuration might be useful when you have limited memory and low mail traffic volumes.

Exim has a complicated set of command-line options, including many that match those of sendmail. Instead of trying to put together exactly the right options for your needs, you can implement the most common types of operation by invoking traditional commands like rmail or rsmtp. These are symbolic links to Exim (or if they're not, you can easily link them to it). When you run one of the commands, Exim checks the name you used to invoke it and sets the proper options itself.

There are two links to Exim that you should have under all circumstances: /usr/bin/rmail and /usr/sbin/sendmail.[2] When you compose and send a mail message with a user agent like elm, the message is piped to sendmail or rmail for delivery, which is why both /usr/sbin/sendmail and /usr/bin/rmail should point to Exim. The list of recipients for the message is passed to Exim on the command line.[3] The same happens with mail coming in via UUCP. You can set up the required pathnames to point to Exim by typing the following at a shell prompt:
$ ln -s /usr/sbin/exim /usr/bin/rmail
$ ln -s /usr/sbin/exim /usr/sbin/sendmail

If you want to dig further into the details of configuring Exim, you should consult the full Exim specification. If this isn't included in your favorite Linux distribution, you can get it from the source to Exim, or read it online from Exim's web site at http://www.exim.org.

Author Comment

ID: 24268300
Ran the command as you recemmended and go the following:

rgeadmin@pegasus:~$ sudo exim -bP configure_file
[sudo] password for rgeadmin:

I opened that file and at the top there's a great big warning about changes to this file being lost, and to check /usr/share/doc/exim4-base/README.Debian.gz, which doesn't exist.

Is there some way of making exim us a nice single static configuration file that I can edit?

Accepted Solution

mail2prabir earned 375 total points
ID: 24270840

since it appears that you are not very comfortable with manual configuration of exim config files. i suggest you download latest exim as well as webmin for exim from


alternatively you can download it from

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article outlines some of the reasons why an email message gets flagged as spam on a recipient's end.
One-stop solution for Exchange Administrators to address all MS Exchange Server issues, which is known by the name of Stellar Exchange Toolkit.
In this video we show how to create an email address policy in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.:  First we need to log into the Exchange Admin Center. Navigate to the Mail Flow…
In this Micro Video tutorial you will learn the basics about Database Availability Groups and How to configure one using a live Exchange Server Environment. The video tutorial explains the basics of the Exchange server Database Availability grou…
Suggested Courses

873 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question