Bug #936

DragonFly mail agent (round two)

Added by matthias over 8 years ago. Updated over 8 years ago.

Status:ClosedStart date:
Priority:LowDue date:
Assignee:matthias% Done:


Target version:-



corecode@ announced his DragonFly mail agent in [1] as a small, simple
clean implementation of a mailer in the base. The goal of dma was not
to replace a feature complete MTA like sendmail or postfix. The basic
intention was to be able to deliver mails from cron, periodic etc to
local users.

I enhanced dma and added remote delivery and some other features needed
for works-out-of-the-box and to keep users happy :) The list of all
features follows:

- Local mail delivery with alias-support
- Remote mail delivery either direct or via a smarthost
- TLS/SSL and STARTTLS support for encrypted connections
- virtualusers (address rewriting) support
- SMTP authentication (currently only plain SMTP login)
- Sendmail compatible command line options
- IPv6 support
- A nice man page (Thanks to swildner@)

You can get the latest version of dma here:

# tar xfz dma.tar.gz
# cd dma
# make
# make install
# install -d -o root -g mail -m 770 /var/spool/dma

All needed config files are in dma/conf. Just copy the conf/ directory
to /etc/dma and configure it to your needs. Check dma(8) for further

I want to commit dma within the next weeks to the tree, so that other
developers can join the development. As this is a first preview there
are sure some bugs inside, but I'm sure that we can fix this asap.
Furthermore if there is a small feature that is missing, we can add this.
The whole thing about dma is, that it enables a user to send emails from
his machine right out of the box.

Comments, patches, etc are welcome :)




dma.diff Magnifier (1.29 KB) delphij, 02/03/2008 02:27 AM


#1 Updated by mneumann over 8 years ago


I haven't heard of dma, but I like the idea. I don't need sendmail on
boxes other than the mail server. For all other boxes a local delivery
is enough.

Does that mean we get rid of sendmail someday? I mean, it can always be
installed from pkgsrc.

Next replace named/bind by a caching-only proxy. I don't see a reason to
include a DNS server, but for example no web-server. Other examples are



#2 Updated by matthias over 8 years ago


That's the reason why corecode@ and me wrote dma :)

This is the long term goal. If dma(8) is considered stable enough we
hook it up to the build as a sendmail replacement.

I'm not sure about that one. You can't compare BIND with sendmail in
terms of users. Most people don't need a caching-proxy and
they're fine without BIND. But the admins who use it (like me) are very
happy that a full nameserver is included in the base.




#3 Updated by mezz7 over 8 years ago

On Fri, 01 Feb 2008 16:57:57 +0100, Matthias Schmidt wrote:

Kind of same argue for anyone that want to have MTA (sendmail) in base
system. If you tell me to use pkgsrc, then why not use BIND in pkgsrc? I
can keep going on. :-) Honestly, I always want FreeBSD to get rid of
sendmail, BIND and others to get us to use ports/packages instead.


#4 Updated by dillon over 8 years ago

This looks awesome. Definitely put it into the source tree.

I don't think we can remove sendmail from the base system in this
upcoming release, but I'll bet we would be able to remove it (or at
least make it optional) for the mid-year release.

DMA needs to support local .forward files to really be considered
a complete local-delivery-capable agent. It may be possible to leverage
existing local delivery agents (without pulling in all of sendmail) for
that purpose, or as part of your project to write your own local delivery
agent that DMA can pipe into.

It also occurs to me that DMA could have integration options for
postfix and sendmail with a simple dma.conf line, to smooth things
over during the transition. So, for example, this would allow all
local mail to just route through DMA natively and yet not require
people to translate their sendmail configs/aliases/special-features
by simply forwarding anything it doesn't understand to a real MTA.

Finally, note that if DMA doesn't listen to port 25 it will not be
able to implement reverse authentication, so its remote delivery options
are fairly limited. That's mostly covered by using SMARTHOST, though,
so it may not be a big deal.

This level of work should definitely be put in the source tree
(/usr/src/bin, not contrib) and worked on in-place.

Matthew Dillon

#5 Updated by matthias over 8 years ago

Thanks :)

That was also my intention. dma surely has some bugs which need to be
fixed until we officially announce it.

corecode and me already had a discussion about implementing .forward
support. I think we'll come up with a solution within the next weeks.




#6 Updated by delphij over 8 years ago

Hash: SHA1

H, Matthias,

(Your mail server seems to have rejected my e-mail...)

Here is a patch that cleans it up. It will be possible to compile
without warnings on FreeBSD with the patch, but I think it is also
useful for DragonFly as well.

- --
Xin LI <> http://www.delphij.net/
FreeBSD - The Power to Serve!
Version: GnuPG v2.0.4 (FreeBSD)


#7 Updated by matthias over 8 years ago


Hmm, I can't find any entries in my log files. Maybe Matt's machine
(crater) or another intermediate machine refused your mail ...

Thanks for the fixes. I'll apply it, test and then commit the changes



#8 Updated by delphij over 8 years ago

Hash: SHA1

After some investigation on this issue it turns out that I was using a
too tight SPF policy, and Matt's machine is doing a 'forward' for
@dragonflybsd.org e-mails. I am requesting for a PTR RR for my mail
server and my ISP told me that it would take some time :( I will try
alternative ways to send you e-mail anyway.


- --
Xin LI <> http://www.delphij.net/
FreeBSD - The Power to Serve!
Version: GnuPG v2.0.4 (FreeBSD)


Also available in: Atom PDF