Converts email newsletters to static HTML pages and an Atom feed.
Go to file
Jacob Kiers d3e4c9e790
All checks were successful
continuous-integration/drone/push Build is passing
Add usage instruction to README
Signed-off-by: Jacob Kiers <jacob@jacobkiers.net>
2022-12-27 12:21:21 +01:00
.cargo Build with rust v1.66 and cross v0.2.4 2022-12-16 18:42:38 +01:00
resources Add style sheet to feed 2022-11-29 23:55:54 +01:00
src Update to mail_parser v0.8.0 2022-12-13 15:44:14 +01:00
systemd Add systemd deployment example 2022-09-06 23:36:37 +02:00
.drone.jsonnet Remove unnecessary docker-in-docker 2022-12-16 19:01:43 +01:00
.gitignore Ignore more directories 2022-08-06 23:00:57 +02:00
Cargo.lock Update to v0.2.2 2022-12-16 19:18:43 +01:00
Cargo.toml Update to v0.2.2 2022-12-16 19:18:43 +01:00
CHANGELOG.md Update to v0.2.2 2022-12-16 19:18:43 +01:00
README.md Add usage instruction to README 2022-12-27 12:21:21 +01:00

Newsletter to Web

Converts a newsletter to and Atom feed and static HTML files.

Usage

Getting help

For help, use

  • newsletter-to-web help
  • newsletter-to-web help <subcommand>.

Basic usage

First, download all messages from the IMAP mail server and store them in the data/ directory:

newsletter-to-web fetch-from-imap -s <imap.example.com> -u <email@example.com> -p <password>

Then, convert them to an Atom feed, using newsletters.example.com as the base domain:

newsletter-to-web --include-html build-feed newsletters.example.org

This will put the output in the output/ directory. The Atom feed will be in output/feed.xml, together with a very simple index.html file pointing to the feed. It will also add an HTML file for every email with the HTML content.

The feed will already contain the full HTML, so it can easily be read from a feed reader.

Features

Receive email

  • IMAP integration
  • Direct feeding of email message
  • Read from Maildir
  • Read from MBOX

Convert email to HTML

  • Generate static HTML files
  • Parse and add unsubscribe link
  • Where possible: remove tracking pixels / images
  • Prevent loading of scripts / images without user interaction

Create ATOM feed

  • Single feed for everything
  • One feed per newsletter
  • Index feed (containing all newsletters)?