Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Mail Systems
Eclipse Documentation

How To Guides
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Problem Solutions
Privacy Policy




The default email server for Debian is exim. This can be set up in one of several ways, depending on how you will access your email. The exim configurator will list the options. The newer exim4 will become the default at some time and its configuration is somewhat simpler. To configure it:

  $ wajig reconfigure exim4-config

For a machine connected to the Internet, receiving email via fetchmail, for example, and using a remote SMTP server to send email, the setup might be:

  Personal preference as to whether you split config into smaller files
  mail sent by smarthost; received via SMTP or fetchmail
  System mail name:
  Four <Return> # Just choose the defaults. 
  Hide local mail name in outgoing mail? Yes
  Visible domain name for local users:
  One <Return> # Choose the default

The file /etc/exim4/update-exim4.conf.conf contains the simple configuration information which is used to generate the more complex exim4 configuration files. Assuming you choose not to split the configuration file, the configuration file for manual editing is /etc/exim4/exim4.conf.template.

If you use Maildir formats that you want your local email to deliver to you can change:




The file /etc/email-addresses can be used to generate a From: address for each user (so that the From address will not be the default of the [email protected]).

You can have exim4 rewrite email addresses by adding something like the following two lines after the begin rewrite:

  begin rewrite
  [email protected] [email protected] s
  kayon [email protected] F

Use exim -Mvh $<$messageid$>$ to list the headers of email waiting to be sent. Use exim -Mvb $<$messageid$>$ to view the body of an email waiting to be sent. Use exim -Mrm $<$messageid$>$ to remove a message from the queue waiting to be sent.

If you have a bunch of frozen messages you want to remove, the following command will do it:

  # exiqgrep -zi | xargs exim -Mrm

Exim will not bounce emails if the original message looks like a bounce. Instead the message is frozen, awaiting the SysAdmin's attention. To bounce the message with a message to the original user, and thereby removing it from the queue, use -Mg $<$messageid$>$.

Some other tricks for managing the exim mail queue with exiqgrep include:

  # exiqgrep -zi -o 86400       # Frozen messages older than a day
  # exiqgrep -z -f ""           # Double bounces

You can check other information with exinext, for example to see when exim will try sending to again (assuming there is an email in the queue for a user at

  # exinext
  Transport: []:1BnRRO-000Bg5-OH error 0:
  SMTP error from remote mailer after end of data: host
  []: 421 lost
    first failed: 25-Jul-2004 03:14:45
    last tried:   25-Jul-2004 06:43:24
    next try at:  25-Jul-2004 08:13:24

(These examples thanks to Lanny Godsey.)

Exim places its email in /var/spool/exim4/, each message has a common prefix with three files corresponding to the mail body, mail header, and exim data.

Copyright © 1995-2006 [email protected]

  Published under the terms fo the GNU General Public License Design by Interspire