First of all, you need the RSS feed or feeds, where the articles appear that you want to republish. You can combine multiple feeds into one using Google Reader, if you wish: group feeds together in a folder and make folder feed public and shared. But you don't have to combine feeds, multiple feeds are ok as is.
Don't steal other people's work. Before publishing content written by other's, you should ask permission for it, otherwise your blog may be reported and terminated. But maybe you want to aggregate your own posts from many blogs to one blog. And this can be done from other/mixed environments, like Wordpress.com, too, and to a hidden blog (visible only to you). Not from hidden blogs, though, because you need the feed. If you republish your own material, that is ok of course.
Blog settings and setting up rss2email
In the blog you want to publish, go to Settings | Email & Mobile. Set your secret email posting address by providing a secret word. Choose "Save emails as draft posts". You can change that to "Publish emails immediately" after you have directed feed(s) to blog and have everything working.
Rss2email is a free tool for delivering news from RSS feeds to email. Python is needed to run rss2email. Rss2email can be run in Windows and different UNIX systems.
Download, install and configure rss2email. I had to change the outgoing mail server settings and the email address of sender (DEFAULT_FROM) in config.py. I also configured rss2email to use html (HTML_MAIL = 1) and not to use stylesheet (USE_CSS_STYLING = 0).
In unix console, change to rss2email's directory, and execute commands:
./r2e new YOURNAME.YOURSECRETWORDS@blogger.com
./r2e add http://yourfeedurl.com
./r2e add http://yoursecondfeedurl.com
./r2e add http://yourthirdfeedurl.com
In Windows you would run r2e.bat instead of ./r2e. You need at least one feed url. Now you have your feed(s) ready for sending to blog.
Sending old (current) entries or not?
If you want to start feeding your blog with only new entries in the feed(s), run first:
./r2e run --no-send
That marks all current feed entries read. Afterwards run ./r2e in regular basis, for example from crontab.
If you want to send all entries, run "r2e run" already at the first time. But beware, there is a limit of about 30-50 posts you can send to Blogger in one day. One way to limit the posts is to add one new feed per day for the publishing email.
You can also publish single posts from a feed using Google Reader. View a post from the feed, select Send To, Blogger.
Double titles hacked away
To prevent "double titles" (first article title, then title with a link to the source) in the receiving blog, I did the following changes to rss2email.py (version 2.71), first around line 717, search for:
content += '<h1' content += ' class="header"' content += '><a href="'+link+'">'+subjecthdr+'</a></h1>\n'Add # in front of all 3 lines:
# content += '<h1' # content += ' class="header"' # content += '><a href="'+link+'">'+subjecthdr+'</a></h1>\n'and around line 748, search lines:
content = ("<html><body>\n\n" + '<h1><a href="'+link+'">'+subjecthdr+'</a></h1>\n\n' + entrycontent[1].strip() + # drop type tag (HACK: bad abstraction) '<p>URL: <a href="'+link+'">'+link+'</a>' )Add # in front of one line, like this:
content = ("<html><body>\n\n" + # '<h1><a href="'+link+'">'+subjecthdr+'</a></h1>\n\n' + entrycontent[1].strip() + # drop type tag (HACK: bad abstraction) '<p>URL: <a href="'+link+'">'+link+'</a></p>' )
If you have different version, then you might have to change something else. The purpose of the changes is to remove <h1> title+link from the beginning of the email body.
Run rss2email automatically
And finally I added a crontab entry (crontab -e) to run the script once an hour (33 minutes past full hour), like this:
33 * * * * cd ~/rss2email-2.71/ && ./r2e run
In Windows you would use the Windows task scheduler and run r2e.bat. See more instructions in rss2email/getting-started-with-rss2email.
I have also subscribed the feeds to my Google Reader, so I decided not to publish the emailed articles immediately, but as a draft. This way I can also do some minor adjustments to the article before publishing, or choose not to publish the article at all.