8.5. Setting Up Your System To Use E-Mail

Today, email is an important part of many people's life. As there are many options as to how to set it up, and as having it set up correctly is important for some Debian utilities, we will try to cover the basics in this section.

There are three main functions that make up an e-mail system. First there is the Mail User Agent (MUA) which is the program a user actually uses to compose and read mails. Then there is the Mail Transfer Agent (MTA) that takes care of transferring messages from one computer to another. And last there is the Mail Delivery Agent (MDA) that takes care of delivering incoming mail to the user's inbox.

These three functions can be performed by separate programs, but they can also be combined in one or two programs. It is also possible to have different programs handle these functions for different types of mail.

On Linux and Unix systems mutt is historically a very popular MUA. Like most traditional Linux programs it is text based. It is often used in combination with exim or sendmail as MTA and procmail as MDA.

With the increasing popularity of graphical desktop systems, the use of graphical e-mail programs like GNOME's evolution, KDE's kmail or Mozilla's thunderbird has becoming more popular. These programs combine the function of a MUA, MTA and MDA, but can — and often are — also be used in combination with the traditional Linux tools.

8.5.1. Default E-Mail Configuration

Even if you are planning to use a graphical mail program, it is important that a traditional MTA/MDA is also installed and correctly set up on your Debian GNU/Linux system. Reason is that various utilities running on the system[19] can send important notices by e-mail to inform the system administrator of (potential) problems or changes.

For this reason the packages exim4 and mutt will be installed by default (provided you did not unselect the standard task during the installation). exim4 is a combination MTA/MDA that is relatively small but very flexible. By default it will be configured to only handle e-mail local to the system itself and e-mails addressed to the system administrator (root account) will be delivered to the regular user account created during the installation[20].

When system e-mails are delivered they are added to a file in /var/mail/account_name. The e-mails can be read using mutt.

8.5.2. Sending E-Mails Outside The System

As mentioned earlier, the installed Debian system is only set up to handle e-mail local to the system, not for sending mail to others nor for receiving mail from others.

If you would like exim4 to handle external e-mail, please refer to the next subsection for the basic available configuration options. Make sure to test that mail can be sent and received correctly.

If you intend to use a graphical mail program and use a mail server of your Internet Service Provider (ISP) or your company, there is not really any need to configure exim4 for handling external e-mail. Just configure your favorite graphical mail program to use the correct servers to send and receive e-mail (how is outside the scope of this manual).

However, in that case you may need to configure individual utilities to correctly send e-mails. One such utility is reportbug, a program that facilitates submitting bug reports against Debian packages. By default it expects to be able to use exim4 to submit bug reports.

To correctly set up reportbug to use an external mail server, please run the command reportbug --configure and answer no to the question if an MTA is available. You will then be asked for the SMTP server to be used for submitting bug reports.

8.5.3. Configuring the Exim4 Mail Transport Agent

If you would like your system to also handle external e-mail, you will need to reconfigure the exim4 package[21]:

# dpkg-reconfigure exim4-config

After entering that command (as root), you will be asked if you want split the configuration into small files. If you are unsure, select the default option.

Next you will be presented with several common mail scenarios. Choose the one that most closely resembles your needs.

internet site

Your system is connected to a network and your mail is sent and received directly using SMTP. On the following screens you will be asked a few basic questions, like your machine's mail name, or a list of domains for which you accept or relay mail.

mail sent by smarthost

In this scenario your outgoing mail is forwarded to another machine, called a smarthost, which takes care of sending the message on to its destination. The smarthost also usually stores incoming mail addressed to your computer, so you don't need to be permanently online. That also means you have to download your mail from the smarthost via programs like fetchmail.

In a lot of cases the smarthost will be your ISP's mail server, which makes this option very suitable for dial-up users. It can also be a company mail server, or even another system on your own network.

mail sent by smarthost; no local mail

This option is basically the same as the previous one except that the system will not be set up to handle mail for a local e-mail domain. Mail on the system itself (e.g. for the system administrator) will still be handled.

local delivery only

This is the option your system is configured for by default.

no configuration at this time

Choose this if you are absolutely convinced you know what you are doing. This will leave you with an unconfigured mail system — until you configure it, you won't be able to send or receive any mail and you may miss some important messages from your system utilities.

If none of these scenarios suits your needs, or if you need a finer grained setup, you will need to edit configuration files under the /etc/exim4 directory after the installation is complete. More information about exim4 may be found under /usr/share/doc/exim4; the file README.Debian.gz has further details about configuring exim4 and explains where to find additional documentation.

Note that sending mail directly to the Internet when you don't have an official domain name, can result in your mail being rejected because of anti-spam measures on receiving servers. Using your ISP's mail server is preferred. If you still do want to send out mail directly, you may want to use a different e-mail address than is generated by default. If you use exim4 as your MTA, this is possible by adding an entry in /etc/email-addresses.

[19] Examples are: cron, quota, logcheck, aide, …

[20] The forwarding of mail for root to the regular user account is configured in /etc/aliases. If no regular user account was created, the mail will of course be delivered to the root account itself.

[21] You can of course also remove exim4 and replace it with an alternative MTA/MDA.