Why is sendmail is part of the system and not a package?

Giorgos Keramidas keramida at ceid.upatras.gr
Thu Oct 29 16:08:29 UTC 2009

On Thu, 29 Oct 2009 08:49:40 +0100, Erik Norgaard <norgaard at locolomo.org> wrote:
> But, do we actually need an MTA in the base? The only arguments
> I have seen in this thread are:
> - because it's been there since the beginning of history - because cron
> requires it to send the daily reports
> For the first, that may be so, but what was a good idea at the beginning
> of history may not be so today. The argument is invalid. For the benefit
> of the project, it should continuously be considered if legacy code can
> be removed and offered as an optional component for those relying on it.
> For the second, honestly: If cron is the only application that requires
> an MTA then maybe it should be considered if that is a good solution. I
> think it is a very heavy requirement for what is otherwise very simple.

Sendmail is a large program.  Configuring Sendmail 15 years ago was arcane
and difficult, to say the least.  Nowadays it is easier than what it used
to be, but it still isn't as easy as Postfix.

What is nice about Sendmail today is that with minimal changes to a base
FreeBSD installation (the rc.conf(5) variable called "sendmail_enable" and
a SMART_HOST value in sendmail.mc) one can quickly get up and running with
a local-only MTA that:

    - Supports message queuing for outgoing messages out of the box
    - Can deliver messages to local users out of the box
    - Can forward email to a mail relay, when the SMART_HOST option is
      enabled, and supports recent RFC
    - Does a reasonably good job at integrating with other tools (procmail,
      fetchmail, thunderbird, other local mailers)

When compiled with the appropriate options Sendmail currently supports SASL
and TLS too.

So Sendmail is a pretty heavy-weight program, but it also supports a lot of
features.  A replacement that would merely support local delivery would be
"mostly ok" for some users but then everyone who _needs_ the special stuff
Sendmail can do now would have to install a port.

Having to install a port is not necessarily a _bad_ thing.  The laptop I am
using to type this message has 822 ports installed.  Another one would do
no serious harm.

> If you deploy a SOHO network with FBSD at home, you may not use your own
> mailservice but depend on some other service. Then you likely don't read
> local mail regularly and it suffices for you to keep the output of cron
> in a plain text file in /var/log. Or you may have cron send mails to your
> mailservice. In either case, there is no need for an MTA like sendmail,
> you only need a simple client.
> It appears to me that having an MTA in base is obsolete. A simple client
> would do if anything at all. Further, if keeping an MTA costs resources
> in patching and testing for every new release, then it goes from being a
> remnant from history to slow down progress for the project.

Having a local MTA, even in a SOHO network may be useful.  Instead of going
through the same hoops to configure 4 different email clients, you can set
up the local MTA and tell all your local mailer programs "send any of your
messages to `localhost' and they will be delivered as usual".

Having an MTA in the base system may not be obsolete.  Deciding _which_ MTA
to integrate with the rest of FreeBSD is debatable and changes to what we
have today have a better chance of being accepted if they also include at
least some amount of patches for $NEWMTA.

More information about the freebsd-questions mailing list