Nullmailer

From LinodeWiki

Jump to: navigation, search

nullmailer is, according to its own man page, "a simple and secure relay-only mail transport agent." It was written by Bruce Guenter.

Nullmailer may be found at http://www.untroubled.org/nullmailer/. At present, the current release is 1.04, dated 2007-10-09.

nullmailer is an appropriate choice of mail agent for machines that receive no local mail, and only need to generate messages for sending off the system, such as a web server with applications that occasionally send notifications. nullmailer is easy to install and requires little ongoing administration.

Contents

[edit] Installation

Obtain the source archive and unpack.

Create a user "nullmailer" and a group "nullmailer".

In the source tree:

 ./configure
 make
 make install install-root

[edit] Configuration

nullmailer's config files may be found in /usr/local/etc/nullmailer/.

In the file "me", put your machine's hostname:

 foo.example.org

In the file "remotes", list those servers through which all mail should be relayed, along with the protocol:

 mailserv.example.org smtp
 mailserv2.example.org smtp
 mailserv3.foo.org smtp

On these remote machines, with their more traditional mail agents, don't forget to allow the nullmailer-using machine to relay. For example, in Postfix, you would list IP numbers of the machine(s) using nullmailer in "mynetworks" of "main.cf".

[edit] Running the daemon

Like any other MTA, nullmailer runs as a daemon, which manages the queue and sends mail on its way. Start the daemon from your RC files:

/etc/rc.local
/usr/local/sbin/nullmailer-send & ## ampersand required to force it to go background

[edit] Sending mail

"nullmailer-inject" receives a standard email message on STDIN which it then writes to the queue (a pipe, and several directories under /usr/local/var/nullmailer/).

To be effective, nullmailer-inject should masquerade as sendmail, for benefit of the many scripts that reference /usr/sbin/sendmail.

nullmailer-inject's command-line arguments are not compatible with sendmail; however, the author has provided a wrapper, installed as /usr/local/sbin/sendmail. ("strings /usr/local/bin/sendmail |grep nullmail" can be used to verify that this file is indeed part of nullmailer).

To invoke this, you'll need to link it from the standard location.

/usr/sbin/sendmail is usually a link to something like /etc/alternatives/mta. If this is the case:

 cd /etc/alternatives
 rm mta mta-sendmail
 ln -s /usr/local/sbin/sendmail mta
 ln -s /usr/local/sbin/sendmail mta-sendmail
Personal tools