Converts email newsletters to static HTML pages and an Atom feed.
Go to file
Jacob Kiers 48caa99423 Allow specifying how many items go into the feed
Signed-off-by: Jacob Kiers <code@kiers.eu>
2024-06-27 18:21:38 +02: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 the feed 2022-12-27 22:59:45 +01:00
src Allow specifying how many items go into the feed 2024-06-27 18:21:38 +02:00
systemd Add protection features to service definition 2024-06-27 17:52:23 +02:00
.drone.jsonnet Add update subcommand 2022-12-29 00:08:49 +01:00
.gitignore Ignore more directories 2022-08-06 23:00:57 +02:00
Cargo.lock Update all cargo dependencies 2024-06-27 17:52:22 +02:00
Cargo.toml Update all cargo dependencies 2024-06-27 17:52:22 +02:00
CHANGELOG.md Add protection features to service definition 2024-06-27 17:52:23 +02:00
README.md Add link to releases page 2022-12-27 12:27:27 +01:00

Newsletter to Web

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

Usage

Get the latest release from the releases page.

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)?