Dokumentation
E-Mail (Resend)
Transaktionale E-Mails mit Resend — Verifizierung, Passwort-Reset, Templates und neue E-Mails hinzufügen.
Motoko Base sendet Auth- und Account-E-Mails über Resend. Das ist nur transaktionale E-Mail — kein Marketing.
Official docs: Resend documentation
Setup
- Erstelle ein Resend-Konto
- Erstelle einen API-Key (Sendeberechtigung)
- Füge deine Absender-Domain hinzu und verifiziere sie (SPF/DKIM) — oder nutze
onboarding@resend.devfür lokale Tests - Setze Env-Vars:
| Variable | Purpose |
|---|---|
RESEND_API_KEY | Server-only API key |
EMAIL_FROM | Sender, e.g. My App <noreply@yourdomain.com> |
Halte außerdem BETTER_AUTH_URL an deine öffentliche URL angepasst — Better Auth baut Verifizierungs-/Reset-Links daraus.
Ohne Resend startet die App, aber Verifizierungs- und Passwort-Reset-E-Mails werden nicht gesendet.
What sends automatically
| Trigger | Template | |
|---|---|---|
| Verification | Sign up / resend | verification-email.tsx |
| Password reset | Forgot password | password-reset-email.tsx |
| Welcome | Account created | welcome-email.tsx |
Better Auth besitzt Tokens und URLs (src/lib/auth/auth.ts). Die E-Mail-Schicht liefert nur über Helpers in src/lib/email/ aus.
Templates
src/lib/email/templates/
shared.tsx # layout, brand name
verification-email.tsx
password-reset-email.tsx
welcome-email.tsxGebaut mit @react-email/components. Bearbeite Copy und Styling in den Template-Dateien. Markenname: shared.tsx.
Add a new transactional email
- Erstelle
src/lib/email/templates/your-email.tsx(nutzeTransactionalEmailLayoutausshared.tsx) - Exportiere
sendYourEmail(...)aussrc/lib/email/index.ts - Rufe es aus einer Server Action, einem Webhook oder Auth-Hook auf — nie aus Client Components
Nur src/lib/email/client.ts importiert das Resend-SDK direkt.
Auth UI routes
| Route | Purpose |
|---|---|
/forgot-password | Request reset link |
/reset-password | Set new password from email link |
/verify-email | Resend verification |
Forgot-password prüft isEmailConfigured() und zeigt eine klare Fehlermeldung, wenn Resend nicht gesetzt ist.
Where to change this
| What | Where |
|---|---|
| Send helpers | src/lib/email/index.ts |
| Resend client & config | src/lib/email/client.ts, config.ts |
| Templates | src/lib/email/templates/ |
| Auth email hooks | src/lib/auth/auth.ts |
Better Auth — Verifizierungs- und Reset-Flow.
Environment Variables — Env-Referenz.