Nullmailer
From LinodeWiki
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
