Matches the pattern already in place for the other domain repos: a short domain-specific README instead of the generic campaigns-template one (also fixing a stray "from" -> "from_email" field-name error), and a sample welcome campaign using the correct "cateconners-list" name from the start. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@ cateconners.com's campaign content, synced to listmonk by [`eec-campaigns`](http
|
|||||||
|
|
||||||
## To send a campaign
|
## To send a campaign
|
||||||
|
|
||||||
1. Write `campaigns/<slug>/campaign.md` (frontmatter + Markdown body — see the [eec-campaigns README](https://gitea.reground.org/will/eec-campaigns#campaignmd) for the full field reference). Set `from` explicitly to `Cate Conners <hello@cateconners.com>` — Mailcow's Sender ACL only allows that exact address for this domain.
|
1. Write `campaigns/<slug>/campaign.md` (frontmatter + Markdown body — see the [eec-campaigns README](https://gitea.reground.org/will/eec-campaigns#campaignmd) for the full field reference). Set `from_email: "Cate Conners <hello@cateconners.com>"` explicitly — there's no default, and sync rejects a campaign with no `from_email` at all. Mailcow's Sender ACL must allow that exact address for the send to go through rather than bounce as spoofing (see Sending as hello@cateconners.com below).
|
||||||
2. `git push` to `master` — CI syncs it into listmonk as a **draft** and emails a preview to `CAMPAIGNS_PREVIEW_EMAIL` (or the campaign's own `preview_emails`).
|
2. `git push` to `master` — CI syncs it into listmonk as a **draft** and emails a preview to `CAMPAIGNS_PREVIEW_EMAIL` (or the campaign's own `preview_emails`).
|
||||||
3. Check the preview inbox. Keep pushing edits until it looks right — each push re-syncs and re-previews.
|
3. Check the preview inbox. Keep pushing edits until it looks right — each push re-syncs and re-previews.
|
||||||
4. When ready to actually send: `git tag send/<slug> && git push origin send/<slug>`. This is the one action that transitions the campaign from draft to running — a plain `git push` to master can never do it.
|
4. When ready to actually send: `git tag send/<slug> && git push origin send/<slug>`. This is the one action that transitions the campaign from draft to running — a plain `git push` to master can never do it.
|
||||||
@@ -16,8 +16,12 @@ Alternatively, run the `Send campaign` workflow manually from Gitea Actions with
|
|||||||
- **`Test-send campaign`** (manual) — re-preview a campaign's current content to any address, without touching its status.
|
- **`Test-send campaign`** (manual) — re-preview a campaign's current content to any address, without touching its status.
|
||||||
- **`Sync default campaign template`** (manual) — pushes `email-templates/campaign.html` into listmonk as the default campaign template. Run once after setup, and again whenever that file changes.
|
- **`Sync default campaign template`** (manual) — pushes `email-templates/campaign.html` into listmonk as the default campaign template. Run once after setup, and again whenever that file changes.
|
||||||
|
|
||||||
## Setup (one-time)
|
## Setup
|
||||||
|
|
||||||
Repo secrets (Gitea Actions → Secrets): `CAMPAIGNS_LISTMONK_BASE_URL`, `CAMPAIGNS_LISTMONK_API_USER`, `CAMPAIGNS_LISTMONK_API_TOKEN`, `CAMPAIGNS_PREVIEW_EMAIL`.
|
Repo secrets (Gitea Actions → Secrets) are already set: `CAMPAIGNS_LISTMONK_BASE_URL`, `CAMPAIGNS_LISTMONK_API_USER`, `CAMPAIGNS_LISTMONK_API_TOKEN`, `CAMPAIGNS_PREVIEW_EMAIL` (`hello@cateconners.com`, also a confirmed subscriber on `cateconners-list` so test-sends have somewhere to go) — scoped to a dedicated `campaigns-cateconners` listmonk API user (see `reground-infrastructure`'s `campaigns-cateconners` Ansible role).
|
||||||
|
|
||||||
The workflows in `.gitea/workflows/` pin a specific `eec-campaigns` version (currently `v0.1.0`). Bump that pin deliberately when a new tool version is ready, not automatically.
|
The workflows in `.gitea/workflows/` pin a specific `eec-campaigns` version (currently `v0.1.4`). Bump that pin deliberately when a new tool version is ready, not automatically.
|
||||||
|
|
||||||
|
## Sending as hello@cateconners.com
|
||||||
|
|
||||||
|
Listmonk sends everything — every domain's campaigns — authenticated as one shared identity, `hello@reground.org`. For a campaign here to actually go out `From: hello@cateconners.com` instead of bouncing as a spoofing attempt, Mailcow's Sender ACL on `hello@reground.org` has to explicitly allow it — confirm this is in place (see `reground-infrastructure`'s `campaigns-cateconners` role, which flags it as a manual step) before relying on a real send.
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
subject: "Welcome!"
|
||||||
|
lists: ["cateconners-list"]
|
||||||
|
from_email: "Cate Conners <hello@cateconners.com>"
|
||||||
|
tags: ["welcome"]
|
||||||
|
---
|
||||||
|
|
||||||
|
{{ if .Subscriber.Attribs.first_name }}Hi {{ .Subscriber.Attribs.first_name }},{{ else }}Hi there,{{ end }}
|
||||||
|
|
||||||
|
Welcome, and thanks for subscribing!
|
||||||
|
|
||||||
|
From now on, this is where you'll hear from me directly — new work, updates,
|
||||||
|
and anything else worth sharing. No spam, no noise, just the good stuff.
|
||||||
|
|
||||||
|
Talk soon,
|
||||||
|
Cate
|
||||||
Reference in New Issue
Block a user