Home of my newsletters
Features:
- 🖌️ Easily create with liquid templates & mjml for email compatibility
- 👁️ Email open analytics with integrated pixel tracking server
- 📋 Subscribe/unsubscribe
- 📤 Automated bulk sending
- ⚙️ Easy to repurpose for yourself, can run entirely in GitHub
pnpm installpnpm dev- Deployments are made automatically on push to GitHub
- Install rust toolchain (rustc, cargo)
cd target/debugcargo runorcargo build --release
- Install python
pip install dotenv tqdm requestsOR install dependancies withpdm addcp .sample.env .env- Make & populate
recipients.csvwith format<name>,<email> python3 newsletter-mailer.py(will confirm before sending)
- 2-column body images are square & resized to 250x250 (use the "fill" option)
- 3-column body images are square & resized to 150x150
- The smallest edge of the hero image is resized to 512 (use the "fit" option of PowerToys image resizer)
The mailer script makes the following substitutions:
$name: Recipient name$tracking: Recipient name, URI encoded$email: Recipient email, used for unsubscribing$address: Sender's physical address, read from.env
/hello/<info>: Tracking pixel which logs iso_datetime, ip, user_agent,infotoaccess.csv/subscribe/<email>/<name>: Addsname,emailtorecipients.csv/unsubscribe/<email>: Removesemailfromrecipients.csv