6

It has bothered me for years that with every new Debian installation, a full MTA (Mail Transport Agent) was installed even if I had no desire to use the machine as a mail server. The MTA was necessary to satisfy package dependencies, though. I ended up with exim (which took forever to load during boot on some machines) and others (which seemed to run memory-heavy background stuff that slowed down the entire system). Removing one required installing another...

  • 1
    I think an MTA is necessary for local/internal use. A Unix system uses an MTA to send messages to the users locally. – Faheem Mitha Dec 8 '13 at 19:42
8

The solution is a dummy MTA, already provided with Debian Linux. It is called lsb-invalid-mta. Quoting the package description:

Paket: lsb-invalid-mta (4.1+Debian12)

Linux Standard Base sendmail dummy

The Linux Standard Base (http://www.linuxbase.org/) is a standard core system that third-party applications written for Linux can depend upon.

This package contains nothing else than a fake /usr/sbin/sendmail command to fulfill the LSB's requirement of providing this command without requiring an MTA to get installed, which once introduces a daemon which can cause security problems and second, users get asked questions about how they want their MTA configured when in reality they simply wanted to install a desktop application or a printer driver, but the dependency on LSB compliance pulls in an MTA with the installation.

The LSB requirement on /usr/sbin/sendmail comes from old times where Linux and Unix machines had all fixed IPs and did server tasks in data centers. Today's typical desktop Linux machines do not do local e-mail any more as users use external e-mail services.

The /usr/sbin/sendmail always exits with exit status -1 (255) and sends a warning message to stderr, so that if a program actually tries to send e-mail via the sendmail command the user gets note.

Thanks to the dependency resolver within aptitude for suggesting the removal of whatever big MTA and suggesting lsb-invalid-mta.

2

You've made a wrong assumption. You do need an MTA. Every unix system needs an MTA, to report system errors such as the output of cron jobs. These messages are important — for example, they may warn you that a disk if failing (cron job reporting SMART errors).

What you may not need is an MTA that accepts email from anywhere but the local machine. Depending on your configuration, you may either need an MTA that only performs local delivery (remember to read your local mailbox), or an MTA that only forwards mail to another SMTP server.

Nullmailer (present in Debian) is a popular choice for an outgoing-only MTA. See Lightweight outgoing SMTP server

  • I am aware of Unix-like systems using e-Mail for system notifications and the like; however, if one is willing to accept the limitations, lsb-invalid-mta seems to be a possible choice. The disclaimers are obvious: The packet has the word "invalid" in its namie, it is described as a "dummy" and a "fake", and it even "always exits with exit status -1 (255) and sends a warning message to stderr, so [...] the user gets note". However, thanks for recommending nullmailer and providing the link to unix.stackexchange.com/questions/1449/… – zebonaut Mar 23 '15 at 6:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.