| I have intentionally named this tool GMailRSS going up against GMail's RSS feed of email also called GMailRSS. GMailRSS should really be an RSS reader as I have defined here. |
If you have a scalable enough standalone email reader GMailRSS will work just fine forwarding mail to that address as well. GMailRSS isn't really tied to GMail in anyway whatsoever.
Personally I have issues with the Google military industrial complex knowing what news I read - but its interface and performance are too good - so I caved in on my principles..
gmailrss-latest.tgz: tgz with all the
stuff you need.
In the advanced usage mode you use a dedicated SMTP server to send
mail.
Mail traffic:
If you subscribe to a very large number of feeds and use the basic
usage of using GMail to send your mail also, GMail may have issues
with this and may or may not temporarily suspend your account. I
recommend using a 3rd party SMTP relay to send mail and using GMail
just for reading.
When you run rss2mail, it will create a bunch of dat files that it
uses to keep track of state of the different RSS feeds. Do not delete
the dat files.
Download
GMailRSS consists of 4 main perl scripts:
gmailrss-latest.zip: Windows compatible
zip.
Previous releases
gmailrss-1.4b.zip
Requirements
You will need the following perl modules:
Getopt::Long
XML::RSS
Crypt::SSLeay
If you use the smtp-client.pl and imap-client.pl, you will also need:
Mail::IMAPClient
Data::Dumper
IO::Socket::INET
IO::Socket::SSL
Net::SSLeay
Digest::HMAC_MD5
MIME::Base64
Term::ReadKey
perl -M<module name> -e 1
will show whether you have the module or not.
Documentation
Installation
http://www.nytimes.com/services/xml/rss/nyt/HomePage.xml
http://www.nytimes.com/services/xml/rss/nyt/Opinion.xml
http://www.slashdot.org/slashdot.rss
http://xml.metafilter.com/rss.xml
Usage
rss2mail.pl
Usage: ./rss2mail.pl --list <feeds file> --feeds=<wildcard|all>
Other options:
--feeds=<wildcard> Selectively update some feeds only
--feeds=all updates all feeds
--nointeractive Run in non-interactive mode.
Default is interactive mode.
--interactive Run in interactive mode. Default.
--log Log filename (defaul gmailrss.log)
--gmail-username Username of your gmail account
--gmail-password Password of your gmail account
--create-gmail-filters Creates labels and filters on your gmail
account
Advanced usage:
--nosend-using-gmail Don't send email gmail server for sending email
Use your own SMTP relay
--skip-imap-connect Don't attemp to connect with an IMAP server
--imap IMAP host name
--user IMAP and SMTP username
--imap-password IMAP password
--smtp-password SMTP password
--email-from Email from address to specify in mail sent
--email-to Email address to send RSS feeds to
--smtp-client smtp-client path
(use this to override default client
and use something else)
--imap-client imap-client path
(use this to override default client
and use something else)
There is only one difference between the advanced usage commands and the
basic usage. In the basic usage mode, GmailRSS uses GMail to send
mail also (the Mail::WebMail::GMail perl module). What basically
happens here is you send email from your GMail address back to your
own address.
Getting started
Rememeber I mentioned labels and filters in the begining? Thats what the
create-gmail-filters option does. You need to run with this switch once when you start off, and labels and filters corresponding to all your RSS feeds
will be automagically created in your GMail account.
Normal usage
Now you simply set up a cron-job that runs this
script without the create-gmail-filters, every 2 hours or so,
and voila you have RSS feeds at your email address.
update.sh
Edit the source of this script and fill in the addresses, server names etc.
First arugment to this script has to be "interactive" or "nointeractive".
It takes the remaining arguments and passes them along as --feeds= to rss2mail.pl.
Usage: ./update.sh <iteractive|noiteracitve> <feed names>
Example Usage
Basic Usage: Example 0
Create filters. You need to run this exactly once. You can create the labels and filters manually also, makes no difference to GMailRSS.
./rss2email.pl --list feeds.lst --feeds=all --nointeractive --gmail-username foo --gmail-password foo --create-gmail-filters
Basic Usage: Example 1
Update all feeds non interactively.
./rss2email.pl --list feeds.lst --feeds=all --nointeractive --gmail-username foo --gmail-password foo
Advanced Usage: Example 1
Update all feeds non interactively.
./rss2email.pl --list feeds.lst --feeds=all --nointeractive --nosend-using-gmail
--imap imap.server.com --user foo --imap-password password1
-smtp-password password2 --email-from foo@imap.server.com --email-to foo@gmail.com
Advanced Usage: Example 2
Update slashdot and metafilter feeds non interactively. A substring match is done on the URL name of the RSS feeds and the string specified in --feeds=
./rss2email.pl --list feeds.lst --feeds=slashdot --feeds-metafilter --nosend-using-gmail
--nointeractive --imap imap.server.com --user foo --imap-password password1
--smtp-password password2 --email-from foo@imap.server.com --email-to foo@gmail.com
Example 3
Above example, using update.sh
./update.sh nointeractive slashdot metafilter
Screenshots
Thumbnails below - click on links.
|
|
Main GMail Inbox. You never really need to be veiwing your
main inbox in this setup - you will always be reading your mails after
clicking on a label. |
|
One RSS feed - viewing slashdot label |
Example filters |
|
Viewing an RSS item (1) |
Viewing an RSS item (2) |