This is the homepage of Epop. A POP3 client/server package written in Erlang .
Epop integrates a number of things into one neat package, which is easily configured to include several users with multiple remote POP3 maildrops as well as a local maildrop. Still it is of course possible to use the various parts independently. For example you may want to only use the Epop client part in your particular Erlang application. One reason to use Epop could be the fact that Epop doesn't suffer of any security breaches caused by overrunning memory since no memory is explicitly allocated (its all taken care of by the underlying Erlang machinery).
Epop is released under the Erlang Public License (EPL) which can be found at: http://www.eddieware.org/EPL
The documentation can be read here. Below follows a list which summarize the features of Epop:
Epop supports the APOP authentication scheme as described in RFC-1939, and the extension mechanism described in RFC-2449.
It also implements an extension to POP3, supporting notification of changes to a specified maildrop. This extension can of course be turned off easily. This extension is described in detail here: draft-tornkvist-pop3-00.txt .
You can download the latest version (2.9) from here.
Here is an example of my personal configuration file (~/.epop).
Epop has been tested to work with Qpopper, Fetchmail, VM, nmh (mh-e) and ESMTP Sendmail 8.8.5/8.8.5.
Currently I have been using Epop as my (and my wifes) personal mail-backend since September 1998. This has hopefully shaked most of the bugs out of it... I'm incorporating mail both from our remote FreeMail provider, using the POP3 protocol, as well as from my local system at work. I'm reading my mail from Epop using a modified version of nmh-0.27 and mh-e (GNU Emacs), both locally and from home over a modem. Read here to see how I got this setup to work.
I'm running Epop as a (Unix) daemon. Code to start Erlang as a daemon can be found here
Here is the current list of things that still has to be done.