6 stable releases
2.1.0 | Mar 7, 2024 |
---|---|
2.0.0 | Feb 6, 2024 |
1.1.1 | Aug 22, 2023 |
1.1.0 | Jul 10, 2023 |
0.1.0 |
|
#76 in Email
120KB
882 lines
Rss2Email
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 use to send the emailsRECIPIENT_ADDRESSES
: comma delimited list of recipient email addressesSUBJECT
: the email subject (could berss2email
). Including$POST_COUNT
in your subject will have it replaced with the number of posts fetched. For exampleSUBJECT=rss2email - $POST_COUNT new posts
DAYS
: this value indicates up to how many days in the past we go to search for entriesFEEDS
: 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 toSendGrid
): Which provider to use to send the email.
For the supported providers, you can check the docs.API_KEY
(optional): Your email provider's authentication key.SKIP_IF_NO_NEW_POSTS
(optional): Whether an email should be sent if the number of posts fetched is 0.
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!
Dependencies
~11–25MB
~360K SLoC