folk.zone Wiki

a public knowledge base

Site Tools


folkzone:email

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

folkzone:email [2026/10/23 15:54] – created - external edit 127.0.0.1folkzone:email [2026/10/24 09:24] (current) – external edit 127.0.0.1
Line 3: Line 3:
 Transactional email for folk.zone services: registration confirmations, password resets, opted-in notifications. Getting it wrong means broken signups and spam-folder delivery. Transactional email for folk.zone services: registration confirmations, password resets, opted-in notifications. Getting it wrong means broken signups and spam-folder delivery.
  
-===== Sending Domain =====+===== Provider =====
  
-Authenticate a dedicated sending subdomain (''mail.folk.zone'') at the DNS provider:+All services send through [[https://resend.com|Resend]] over SMTP:
  
-  * SPF: ''v=spf1 include:<provider> ~all'' +<code> 
-  * DKIM: TXT records provided by the ESP dashboard +Host: smtp.resend.com 
-  * DMARC: ''v=DMARC1; p=quarantine; rua=mailto:dmarc@folk.zone; pct=100''+Port: 587 (STARTTLS) 
 +Username: resend 
 +Password: <API key> 
 +</code>
  
-Send from ''noreply@folk.zone'' with ''Reply-To'' set to a monitored address so people can actually respond.+The API key is shared through the ''RESEND_API_KEY'' environment variable in the server Compose file and the environment ''~/.env'' on casa. Free tier is 3,000 emails/month, 100/day.
  
-===== Provider Strategy =====+===== DNS Records =====
  
-^ Tier ^ Provider ^ For ^ Free tier ^ +The ''folk.zone'' domain is verified in Resend. DNS lives at Porkbun; the required records are:
-| Primary | [[https://resend.com|Resend]] | Mastodon, WriteFreely, Forgejo, Pixelfed, BookWyrm, Lemmy, Rallly | 3,000/month, 100/day | +
-| Overflow | SendGrid | Low-volume services: wiki, pad, go, status alerts | ~100/day | +
-| Fallback | Stalwart Mail or maddy (self-hosted) | If costs become unsustainable | n/a |+
  
-Resend config shape:+^ Type ^ Host ^ Value ^ 
 +| TXT | ''resend._domainkey'' | DKIM public key, copied from the Resend domain dashboard | 
 +| MX | ''send'' | ''feedback-smtp.us-east-1.amazonses.com'', priority 10 | 
 +| TXT | ''send'' | ''v=spf1 include:amazonses.com ~all'' |
  
-<code> +The MX and TXT records on ''send'' coexist with the existing ''send.folk.zone'' A record for the file-sharing service. If the domain ever shows "failed" status in Resend, trigger re-verification with ''POST /domains/{id}/verify'' against the API. 
-SMTP_ADDRESS: smtp.resend.com + 
-SMTP_PORT: 587 (STARTTLS) +Recommended addition: DMARC as a TXT record on ''_dmarc'': ''v=DMARC1; p=quarantine; rua=mailto:dmarc@folk.zone; pct=100''. 
-SMTP_USERNAME: resend + 
-SMTP_PASSWORD: <API key> +===== Per-Service Configuration ===== 
-SMTP_AUTHENTICATION: plain + 
-</code>+^ Service ^ Mechanism ^ Sender ^ 
 +| WriteFreely (write) | ''WRITEFREELY_SMTP_*'' env vars | configured in WriteFreely config | 
 +| Rallly (meet) | ''SMTP_*'' env vars | ''noreply@folk.zone'' | 
 +| Kutt (go) | ''MAIL_*'' env vars | ''noreply@folk.zone'' | 
 +| DokuWiki (wiki) | [[https://www.dokuwiki.org/plugin:smtp|smtp plugin]] + ''local.php'' | ''noreply@folk.zone'' | 
 +| Mastodon | ''SMTP_*'' env vars | ''notifications@folk.zone'' | 
 +| Forgejo (git) | ''FORGEJO__mailer__*'' env vars | ''git@folk.zone'' | 
 + 
 +The DokuWiki container has no MTA, so it needs the plugin. Its config keys are ''plugin.smtp.auth_user'' and ''auth_pass'', not ''smtp_user''/''smtp_pass''. Use ''smtp_ssl = tls'' for port 587.
  
-SendGrid's account restrictions are increasingly aggressive on residential IPs. Brevo is the friendlier alternative for indie operators.+HedgeDoc runs anonymous-only and does not send mail. IT-Tools, CyberChef, Send, ArchiveBox, and EtherCalc have no account system and send nothing.
  
 ===== Registration Spikes ===== ===== Registration Spikes =====
folkzone/email.1792792470.txt.gz · Last modified: by 127.0.0.1 · Currently locked by: 172.19.0.10