Tag Archives: rss

Feeds in your inbox

Google Reader will be dead by the 1st of July. Everyone has moved or at least is considering moving to new feed aggregators. There is a heap of options out there (out of which I recommend that you try out Newsblur). But none of them has been able to boast of a good public API as our good old Google Reader did.

I used to have this IFTTT recipe that would send the articles of the most important feeds I follow to my inbox. Now that Reader is dying and no other options out there seem to offer IFTTT channels, the best solution seemed to be rss2email.

rss2email (how appropriately named!) is a tool used to send new feed items to your email inbox. It has been first written in Python by Aaron Swartz (who happened to commit suicide a few months back). The source can be found in github.

Prerequisites

It would be much convenient if you have your own server (or a shared host). Even a desktop that runs on Linux or Mac OS X would do, but make sure it stays powered on most of the time and has a constant internet connection. This is because rss2email should be invoked periodically to check feeds using a cron job. To send email, you need to have a mail server installed and configured. If you’re using a web host, this might have already been done for you. Also make sure you have Python installed.

Setting up rss2email

1. Download

Download rss2email with wget and extract.

wget http://www.allthingsrss.com/rss2email/rss2email-2.70.tar.gz
tar xf rss2email-2.70.tar.gz

2. Configure

This is the most important step. The newly extracted directory contains a file called config.py which contains all the necessary configs. Most are self-descriptive. Make sure you configure the mail server settings correct. Here’s my setup:

SMTP_SEND = 1
SMTP_SERVER = “mail.thameera.com:[port]
AUTHREQUIRED = 1
SMTP_USER = ‘[emailid]@thameera.com’
SMTP_PASS = ‘[password]

You can set the email address that would be in the ‘From‘ field of emails in the DEFAULT_FROM config.

3. Set your ‘To:’ address

See the r2e script in your extracted directory? That’s what you need to invoke for the tasks we do from now on. First, set the address of where the mail should be delivered to using the following command:

./r2e new

4. Add feeds

Time to add those feeds. You can add them one by one using ./r2e add. For example, to add the feed of this blog:

./r2e add http://blog.thameera.com/feed

Now if you run the following command it would grab all the feeds and send them to your email:

./r2e run

However, it would send all the items available in the feeds in the first run. This could even be hundreds. Since most of you wouldn’t want this to happen, make sure you run it with --no-send first.

./r2e run –no-send

The next time you run r2e, it would mail only the new feed items.

5. Set the cron job

You’re almost done. The last step would be to set up a cron job that would invoke r2e periodically. If you don’t know how to set up cron jobs, be a lamb and look for a tutorial online. The cron job should cd to the r2e directory and run the command ./r2e run. You can set the time interval as you wish. A small interval means you get the articles mailed quickly, but would cause more server load and cost bandwidth. I’ve set mine to 15 minutes.

That’s it. No more Google Reader. You can sit back and relax while rss2email makes sure you never miss an important feed item. If you’re feeling adventurous, you can also go ahead and edit the python scripts to change the email format and tweak to make it more awesome.