I spent about 35 hours developing the first version of the mail handler we use on <www.classlet.com>. I took the knowledge I gained from that, turned around, and re-wrote it from scratch in about 15 hours.
Weighing in at under 500 lines of code, it makes heavy use of Python's mimetype and smtp libraries as well as some abstractions from Django's mail library. It operates on mail piped into stdin by procmail every 10 seconds as retrieved by fetchmail. The subsystem has basic logging and in the event of errors procmail dumps the entire message into an mbox file and notifies me. Retrying is as simple as `cat mbox | classlet/procmail.py`
That said: I applaud any attempt to make this easier, more robust, and more standard. Our mail processor is actually quite simple, but has a long way to go in terms of maturity.
I'd love to hear about other experiences with this stuff. I know the Posterius guys lurk around here, how about some insight? :-)
I've also extracted Django's mail abstractions (since django.core.mail is dependant on django.settings) for a unreleased project I'm working on. We (I?) should probably make this a stand alone package (with the relevant tests from Django's test suite).
Interesting that this has gotten something this kind of attention already, the project has only just started. I suppose that it owes a lot to Zed being Internet-famous, but still.
Yep. Suits, spammers, scammers and diehard hackers (using mutt in a tiling window manager no doubt). Everyone else is jumping ship. I'm not saying Facebook/Twitter or even Wave is the future... but something else than email is, and we'll probably see it within a year or two.
I've only seen the term, "meatspace", in the last few weeks. Is this some new nerd trend? Attempting to ostracise yourself from the general public by referring to them with degrading inhuman terms such as this is a rather stupid idea, IMHO.
Weighing in at under 500 lines of code, it makes heavy use of Python's mimetype and smtp libraries as well as some abstractions from Django's mail library. It operates on mail piped into stdin by procmail every 10 seconds as retrieved by fetchmail. The subsystem has basic logging and in the event of errors procmail dumps the entire message into an mbox file and notifies me. Retrying is as simple as `cat mbox | classlet/procmail.py`
That said: I applaud any attempt to make this easier, more robust, and more standard. Our mail processor is actually quite simple, but has a long way to go in terms of maturity.
I'd love to hear about other experiences with this stuff. I know the Posterius guys lurk around here, how about some insight? :-)