Perl Mail Server

kaare on 2008-10-31T10:06:28

I installed qpsmtpd (journal entry http://use.perl.org/user/kaare/journal/37631) a while ago. It is fun, you can mess with separate bits and pieces the usual Perl way, and qpsmtpd has a very low ressource consumption on the system.

So, just a thought. Why not implement a full-feature mail system in Perl? At least it would be nice to know if all the different mail server elements exist in Perl.

A quick look turns up rather mixed. Perl email modules mostly look dead, but so did Qpsmtpd until I started looking.

SMTP Server Short answer: Qpsmtpd

Local delivery You can manage your sieve scripts with Net::Sieve. Perhaps there could be a Qpsmtpd plugin for delivery using Sieve scripts.

MTA I only found Tipjar::MTA. Doesn't support ESMTP according to the POD. Doesn't seem to be actively developed. But then again, I saw a patch to Qpsmtpd supporting tipjar recently.

IMAP Server Net::IMAP::Server

POP3 Server POP3 is not a necessity in my world, but I know people who still use it. I haven't found any (recently active) Perl POP3 Server yet.

Mail storage Email::Store (and PostgreSQL) Even if it seems to be Abandonware like the rest of Perl Email Project (http://emailproject.perl.org/) (it hasn't been touched for the last two years), it has at leas the notion of headers, body, attachment et al. There's also a database backend, which is a nice touch. With a proper database you would avoid the problem that the server could choke after only a few thousand emails in a folder. Also you could use all of the advanced features of your database. Full text search, for example, if you use Postgres.

Text search PostgreSQL fulltext search Other options: Use a text indexer, e.g. Xapian.

Mailing lists and more. I'm sure there are more modules you could fit into a mail server. I didn't find a ready-to-use mailing list implementation, but it wouldn't be too hard to make one from scratch or from already existing modules.

Why would you want an all-Perl Mail Server? Well, you don't necessarily. But it would be easy to plug in some module to process an email for whatever reason it could support your personal or professional needs. Perhaps you would like specialized statistics on your email storage or email usage? Mail archiving? Easy program / email interaction?

This was just a thought experiment. I do wonder what happened to the Perl Email Project, though.


uh..?

rjbs on 2008-11-01T00:30:30

Here is a big sample of code from my cpan dir:

Email-Abstract-2.134                  16 Nov 2007
Email-Address-1.889                   19 Dec 2007
Email-ARF-0.003                       23 Mar 2007
Email-Date-1.103                      30 Nov 2007
Email-Date-Format-1.002               03 Dec 2007
Email-Delete-2.001                    14 Sep 2008
Email-Filter-1.032                    14 Sep 2008
Email-Folder-0.854                    23 Dec 2007
Email-Folder-IMAP-1.102               01 Apr 2007
Email-Folder-IMAPS-1.102              01 Apr 2007
Email-Folder-POP3-1.013               07 Nov 2007
Email-FolderType-0.813                22 Mar 2007
Email-FolderType-Net-1.041            22 Mar 2007
Email-LocalDelivery-0.217             21 Jun 2007
Email-MessageID-1.400                 02 Oct 2008
Email-MIME-1.861_01                   08 Sep 2008
Email-MIME-Attachment-Stripper-1.315  08 Jul 2008
Email-MIME-ContentType-1.014          22 Mar 2007
Email-MIME-Creator-1.454              14 Jul 2007
Email-MIME-Encodings-1.311            22 Mar 2007
Email-MIME-Modifier-1.442             16 Jul 2007
Email-Reply-1.202                     20 Jul 2007
Email-Send-2.192                      02 Nov 2007
Email-Send-IO-2.200                   18 Sep 2007
Email-Simple-2.004                    25 Jun 2008
Email-Simple-Creator-1.424            30 Nov 2007
Email-Simple-FromHandle-0.052         25 Jun 2008
Email-Simple-Headers-1.02             11 Jul 2006
Email-Store-0.255                     22 Mar 2007
Email-Store-HTML-0.301                01 Aug 2006

Most of that is within the last year. Quite a lot of it is release since Perl 5.10.0. Does that mean that Perl 5 is dead too?

If you want to know what happened, why not ask instead of posting matter-of-factly that it's dead? It's very irritating to be told that one work over the last two years might as well have not happened.

Re:uh..?

rjbs on 2008-11-01T00:47:25

s/most/much/

Clearly I should not post when pissed off.

Re:uh..?

Aristotle on 2008-11-01T03:41:34

For the record, as soon as I read that, I thought “quick, someone tell RJBS!” But it didn’t seem productive to act upon it, so I didn’t respond nor did I ping you.

Re:uh..?

kaare on 2008-11-01T23:02:27

Thanks for your feedback.

I'm referring to a wiki that hasn't been touched for a long time (OK 1½ years, not two years. Still forever in Internet - and especially Perl time).

But I'm happy to see that there's a lot of later activity elsewhere.