Skip to content

feat(email): Resend as primary provider (prod SMTP cred is dead) - #448

Merged
github-actions[bot] merged 1 commit into
mainfrom
feat/resend-email
Sep 5, 2026
Merged

feat(email): Resend as primary provider (prod SMTP cred is dead)#448
github-actions[bot] merged 1 commit into
mainfrom
feat/resend-email

Conversation

@catomean

@catomean catomean commented Sep 5, 2026

Copy link
Copy Markdown
Collaborator

Live-probed from bitbaum: the Brevo SMTP credential in evig prod answers Login denied — email transport code ships fine (bundled nodemailer, network OK) but auth fails, so registration codes, password resets and contact forms have been silently dying at send. The shared fleet RESEND_API_KEY was live-verified (accepted a send from fleetcrown.orangecat.ch). This PR adds a resend provider (plain fetch, one endpoint, no new dep) preferred whenever the key is set; Listmonk stays explicit opt-in, SMTP stays as fallback. After merge+deploy I will set RESEND_API_KEY in /opt/evig/app/.env, restart, and prove delivery through the admin diagnostics endpoint.

🤖 Generated with Claude Code

Live check 2026-09-05 from the box: the Brevo relay answers "Login
denied" to the deployed EMAIL_USER/PASS, so every verification code,
password reset and contact mail silently failed at send time. The fleet
standard is the shared Resend key (5 apps); evig now prefers Resend when
RESEND_API_KEY is set, keeps Listmonk as explicit opt-in and SMTP as
fallback. Sender follows the surf/vitareba convention
(evig@fleetcrown.orangecat.ch) since only fleetcrown.orangecat.ch is
verified in the Resend account. Diagnostics endpoint reports the new
provider.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WqKqMnHQHSmkGFfc5t7Rxn
@github-actions
github-actions Bot merged commit 8d02b92 into main Sep 5, 2026
8 checks passed
@github-actions
github-actions Bot deleted the feat/resend-email branch September 5, 2026 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant