1

I'm looking for information on any libraries or methods that would help me to build an email archiving system using Ruby (I'm open to other languages if suggested).

The application would need to do the following:

  • 1) Sit on a incoming mail server, receiving and storing all incoming email.

    2) After storing email, push it out to our actual email server.

    3) The Email archive should be searchable.

Any thoughts on this are appreciated, I can't seem to find an existing project that does this.

2 Answers2

0

Even though I'm a big Ruby fan, Zed Shaw has written a very interesting and configurable SMTP server in Python, called Lamson:

http://lamsonproject.org/

I've never used Lamson, but I think with minimum tweaking you could make it store e-mails into most any DB you choose, and forward e-mails easily wherever you like.

Once you have all your emails in a DB, it should be a relatively easy task to build a front-end to the DB with Ruby (and/or Rails) if you wish.

Since processing e-mails can be fairly tricky stuff, using something purpose-built like Lamson as your intermediate processor might be worth a shot.

Casper
  • 33,403
  • 4
  • 84
  • 79
  • Thanks for the feedback casper. This gives me a place to start, and some fun tweaking to do. Out of curiosity did you see this question off my twitter, from hackernews, or just happen to come across it on stackoverflow? – doboyleltps Aug 24 '11 at 19:24
  • @dobo - Thanks..great. If you find out something while you're tweaking perhaps you can add that info to your question later also so others can see what you ended up with. And no, I just lurk "professionally" on SO, and found your question here. – Casper Aug 24 '11 at 20:03
0

The lamson project looks pretty awesome. If you're looking to actually implement something yourself I posted a blog post a while back on some of the best methods to receive email in Ruby. There are also plenty of ways to push the mail back out again fairly easily, it's probably better to rely on a system that already has all of this functionality though.

Steve Smith
  • 5,146
  • 1
  • 30
  • 31