Theoretically, Haskell should be perfect for implementing a network service daemon like smtpd. There is a whole bunch of mature libraries for network communication, dns, tls, and even parsing of RFC281. So all that stuff just needs to be tied together by a main function. :-) It should be possible to come up with a daemon that can accept a simple ESMTP mail transfer and perform local delivery, say, via LMTP (which procmail supports). Once that's implemented, we a have a server that cat accept local mail from the Internet. From there, going to mail injection cannot be hard since we already have the LMTP code. I dunno ... it might be too ambitious a project, but I am interested in doing some system-level programming and I enjoy writing Haskell code, so I'll just give it a shot and see what happens.

Generally speaking, I see a niche in the MTA market, because the available mail servers tend to be too complex, i.e. they support too many features. Most sites have only moderate requirements and they don't need all kinds of funky header re-writing and a dozen milters and an RDBMS for storing the mail spool. If I can come up with a design that works well for all the use-cases that I personally have on my servers, then chances are that the resulting code will be useful to others too.


Be the first to comment!

Similar Projects

This project is one of its kind!