On Oct 27, 2010, at 10:08 AM, Günther Schmidt wrote:

Dear Malcolm,

since there is no mail client library even after 10+ years I suggest to rethink the approach, because frankly, it's not working.

Hello!

I am in charge, sorry for the delay!

A number of years ago I tried to form a MIME strike force to create a library that would be suitable for composing mail messages, decoding mail messages, or transforming mail messages. But received no real interest:

http://www.mail-archive.com/haskell-cafe@haskell.org/msg21872.html

The fact that it is now considered an oddity (by some) that there is no standard, well support mail library is a sign of great progress in my opinion.

The driving force is likely to be web development platforms such as happstack, snap, and yesod, because one often wants to integrate email with a web site. (such as send emails to members, etc).

That said, there have been many attempts at various portions of the mail infrastructure over the years.

As part of that strike force attempt I create this mime library (not on hackage):

http://src.seereason.com/haskell-mime/

It can parse and decode multipart messages. And it has the beginning of an interface for composing messages. One thing I attempted to do was create a mail composition DSL that only allowed you to construct valid messages. For example, some headers can only appear once, and others can appear multiple times. So I attempted to encode that into the DSL. I was successful to some degree.

There is also the mime-string library on hackage which does MIME parsing.

There is the new mime-mail library for creating and sending MIME messages.

happstack had the beginnings of a MTA at one point in time, but was removed until someone comes along with the desire and time to really implement it.

There is the Postmaster ESMTP server,

http://gitorious.org/postmaster

which acts as a MDA for receiving mail and filtering it into folders. It allows you to write your filtering rules in Haskell instead of some obtuse filter language (e.g., procmail).

And there are other projects I have not mentioned as well.

I guess part of the question is, do you specifically mean a 'mail client'. There are a lot of pieces to the mail puzzle including, MUA, MTA, MDA, MIME, etc. And there is the reading of saved mail formats like mbox, Maildir, etc. And then there are the various protocols like SMTP, POP3, IMAP4, etc. And things like GPG signatures and encryption.

Using the libraries that are available right now I can create a mime email and send it via sendmail or via an SMTP smart host. I can also use a well established program like dovecot to receive mail and then decode messages using mime-string on haskell-mime. That gets me pretty far for what I need to do.

Writing a competitor to mutt or gmail would be more difficult due to some missing pieces. But, then again, I think most people are satisfied enough with mutt and gmail, so not many people have any motivation to replace them. Same thing with a competitor to qmail/ dovecot/etc. Those tools are in place and work pretty well. So, replacing any of those really only becomes interesting if you are going to do something really new -- not just implementing them in your favorite language.

Anyway, I do think there will be growth in the haskell mail library domain. Specifically the stuff that would be useful for integration with web applications.

 - jeremy_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to