rss2email 1.0.1

An RSS feed aggregator that notifies you of new posts via email.
Documentation

Rss2Email

Build & Tests Crates.io docs.rs Minimum Supported Rust Version dependency status Docker Images

Note: Pipeline is currently failing due to an unrelated issue with windows benchmarks (see here).

A small program capable of aggregating content from multiple RSS/Atom feeds and mailing them to you in a practical summary email. Keep track of your favorite blogs that don't feature an update newsletter or similar service.

Dependencies

You'll need Rust or Docker installed to compile this software.

Installation

Each release automatically publishes Docker images for x86 and arm on DockerHub. Note that these can only run on AWS Lambda. If you want to run them elsewhere through Docker, read here.

Alternatively, you can build this from source. Clone this repository and run:

cargo build --release

Check out the build from source section of the wiki for more information.

Configuration

Rss2email requires some environment variables to work. These can be provided either in your shell or as entries in a .env file.

  • EMAIL_ADDRESS: the mail address you will receive the feed content

  • DAYS: this value indicates up to how many days in the past we go to search for entries

  • FEEDS: a list of semicolon-separated feed URLs.
    eg: "https://blog.rust-lang.org/feed.xml;https://www.linux.org/articles/index.rss"

  • EMAIL (optional, defaults to SendGrid): Which provider to use to send the email.
    Can be set to EMAIL_COMMAND as an alternative if you have mail or sendmail installed in your system

  • API_KEY (optional): Your SendGrid authentication key.

More details are available in the Running the code wiki section.

Usage

Running the code in debug mode won't send any emails and will instead output the generated HTML in the console.

cargo run

It is recommended to try this out first and make sure that all your feeds and config variables are correctly set up.

Running the project in release mode will send the emails

./target/release/Rss2email
# or
cargo run --release

Contributing

Thanks for considering contributing!

Read this.

Thanks to all Contributors!