Skip to content

Commit 107fffc

Browse files
committed
Initial commit
0 parents  commit 107fffc

File tree

10 files changed

+1187
-0
lines changed

10 files changed

+1187
-0
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
processed_entries.txt
2+
3+
*.swp
4+
*.swo
5+
6+
rss2newsletter.egg-info
7+
dist

LICENSE

Lines changed: 664 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<div align="center">
2+
<a href="https://github.com/ElliotKillick/rss2newsletter">
3+
<img width="160" height="160" src="logo.svg" alt="rss2newsletter Logo" />
4+
</a>
5+
</div>
6+
7+
<h3 align="center">
8+
rss2newsletter
9+
</h3>
10+
11+
<p align="center">
12+
<em>Freely send newsletters <strong>100x cheaper</strong> via Amazon SES</em>
13+
</p>
14+
15+
**rss2newsletter turns any RSS/Atom feed into a fully automated email newsletter with minimal setup.** The project aims to be a minimalist's 100% free and open source alternative to [Mailchimp's RSS-to-Email](https://mailchimp.com/features/rss-to-email/). Switching from Mailchimp could easily save you tens to hundreds or even thousands of dollars per month depending on your send volume. rss2newsletter intergrates with [listmonk](https://listmonk.app/) to send emails (which works with Amazon SES).
16+
17+
rss2newsletter supports all the features you need to create appealing email newsletters including automated grabbing of a content image using your website's [OpenGraph metadata](https://ogp.me/#metadata). rss2newsletter + listmonk are also incredibly portable & lightweight, so there are no minimum system requirements for having them operate at full capacity 24/7 on any computer (unlike heavyweight proprietary solutions).
18+
19+
Common RSS feed sources you can turn into an email newsletter includes... your personal/team blog (virtually all blogging platforms produce RSS feeds by default), social media accounts/topics, news websites, and much more! Please only use rss2newsletter to deliver email that you would want in your inbox (e.g. notifying subscribers of new high effort content; no spam).
20+
21+
## Get Started
22+
23+
1. [Download listmonk](https://listmonk.app/#download)
24+
- The listmonk server comes as a single binary that you can start in one command (set up with a provider like Amazon SES later)
25+
2. Get rss2newsletter: `pip3 install rss2newsletter`
26+
- Ensure you already have Python installed
27+
- If you prefer to use your system package manager then Git clone this repo and run the `install.sh` script
28+
3. Create rss2newsletter's [configuration file](https://raw.githubusercontent.com/ElliotKillick/rss2newsletter/main/rss2newsletter.conf) and design your email with the [newsletter template file](https://raw.githubusercontent.com/ElliotKillick/rss2newsletter/main/newsletter_template.html)
29+
4. Run `rss2newsletter` to start creating campaigns and sending out emails!
30+
31+
## Usage
32+
33+
```
34+
$ rss2newsletter --help
35+
36+
d88b 8 w w
37+
8d8b d88b d88b " dP 8d8b. .d88b Yb db dP d88b 8 .d88b w8ww w8ww .d88b 8d8b
38+
8P `Yb. `Yb. dP 8P Y8 8.dP' YbdPYbdP `Yb. 8 8.dP' 8 8 8.dP' 8P
39+
8 Y88P Y88P d888 8 8 `Y88P YP YP Y88P 8 `Y88P Y8P Y8P `Y88P 8
40+
... by @ElliotKillick
41+
42+
usage: rss2newsletter.py [-h] [-c CONFIG]
43+
44+
Convert an RSS feed to email newsletters
45+
46+
options:
47+
-h, --help show this help message and exit
48+
-c CONFIG, --config CONFIG
49+
Program configuration file
50+
(default: rss2newsletter.conf)
51+
```
52+
53+
## Support the Author
54+
55+
If you choose to host on a VPS, feel free to support the rss2newsletter author through one of my affiliate links (only one at the moment):
56+
57+
[BuyVM](https://my.frantech.ca/aff.php?aff=7395&site=slices)
58+
59+
BuyVM has some of the most competitive prices on the market for small VPSs. Thank you!!
60+
61+
## License
62+
63+
AGPL License - Copyright (C) 2024 Elliot Killick <contact@elliotkillick.com>
64+
65+
Why copyleft? I usually publish under a permissive open source license but there are too many proprietary email marketing solutions. Contact me if your company requires an alternative license.

install.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/sh
2+
3+
if [ -f "/etc/debian_version" ]; then
4+
sudo apt-get -y install python3-requests python3-feedparser python3-lxml
5+
elif [ -f "/etc/fedora-release" ]; then
6+
sudo dnf -y install python3-requests python3-feedparser python3-lxml
7+
else
8+
pip3 install requests feedparser lxml
9+
fi

logo.svg

Lines changed: 51 additions & 0 deletions
Loading

newsletter_template.html

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<h3>
2+
Hi, {{ .Subscriber.FirstName }}!
3+
</h3>
4+
<p>
5+
We just released some exciting new content! Check it out:
6+
</p>
7+
8+
IMAGE_OPTIONAL_BEGIN
9+
<p>
10+
<a href="LINK_HERE?utm_source=new-article&utm_medium=email&utm_campaign=share-content"><img src="IMAGE_HERE"></a>
11+
</p>
12+
IMAGE_OPTIONAL_END
13+
<p>
14+
<a href="LINK_HERE?utm_source=new-article&utm_medium=email&utm_campaign=share-content">TITLE_HERE</a>
15+
</p>
16+
17+
<p>
18+
- Your Name
19+
</p>
20+
21+
<p>
22+
</p>
23+
<hr>
24+
<p style="font-size: 10px;">
25+
Powered by rss2newsletter <a href="https://github.com/ElliotKillick/rss2newsletter" target="_blank">rss2newsletter</a>.
26+
</p>

pyproject.toml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[project]
2+
name = "rss2newsletter"
3+
version = "1.0.5"
4+
authors = [
5+
{ name="Elliot Killick", email="contact@elliotkillick.com" },
6+
]
7+
description = "Convert RSS/Atom feed to email newsletters with listmonk"
8+
readme = "README.md"
9+
requires-python = ">=3.8"
10+
classifiers = [
11+
"Programming Language :: Python :: 3",
12+
"License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
13+
"Operating System :: OS Independent",
14+
]
15+
16+
[project.urls]
17+
Homepage = "https://github.com/ElliotKillick/rss2newsletter"
18+
Issues = "https://github.com/ElliotKillick/rss2newsletter/issues"

0 commit comments

Comments
 (0)