[darcs-users] darcs vs sendmail

Trent W. Buck trentbuck at gmail.com
Fri Mar 13 14:53:10 UTC 2009

Peter Hercek <phercek at gmail.com> writes:

> If sendmail is not reliable (ie it does not make sure that at least
> first hop is ok before returning) 

That depends on the implementation.  Most implementations (once
configured) will queue the message on the local system, then try to
forward the message to the next hop.  If the next hop rejects the mail
or isn't available, then the message stays in the queue and is tried a
few more times (e.g. once a day), and the user who sent the message is
sent an error message via email.

This behaviour is the same whether youre talking about the MTA on your
laptop or the MTA at your ISP.  msmtp is a notable exception to this
general rule.

> then it is probably better to send mail directly from darcs (using
> smtp).

I did just this with all my other apps for a while, and the conclusion I
came to was that while it's easy to implement an in-app SMTP client, it
actually ends up being MORE work, because you have to *separately*
configure in each app smarthost (and possibly your SSL username,
password and the remote host's public key).  And then it turns out that
most in-app SMTP clients are buggy and slow and maybe don't do SSL.

I went down that path because I was so pissed off at nullmailer and
ssmtp not working for me (and I didn't want the weight of postfix, which
I highly recommend for servers).  But then I discovered that msmtp
actually seems to work fairly reliably, doesn't run a daemon, doesn't
keep a local queue, and actually waits until the message has been sent
to the server before exiting (and exits with a non-zero status if that
didn't work).  Oh, and msmtp can be rolled out without root access.

So while in the past I have advocated for adding SMTP client support
into Darcs, and while I won't oppose anyone who wants to do that, my
current recommendation is to simply use msmtp instead.

> If you send it directly to the target mail server you have good
> change it will accept it.

Erm, it sounds like you're talking about talking to the server
example.com directly when darcs wants to address foo at example.com.
I have a gut feeling that is the Wrong Thing, but I'm not sure why.

My expectation of an in-app SMTP client is that it would send *all* mail
to a smarthost (e.g. mail for foo at example.com would be sent to
mail.my-isp.net or mail.my-company.com).

More information about the darcs-users mailing list