Documentation
Email (Resend)
Email transactionnel avec Resend — vérification, réinitialisation de mot de passe, templates et ajout de nouveaux emails.
Motoko Base envoie les emails d'auth et de compte via Resend. Il s'agit uniquement d'email transactionnel — pas de marketing.
Official docs: Resend documentation
Setup
- Créez un compte Resend
- Créez une API key (permission d'envoi)
- Ajoutez et vérifiez votre domaine d'envoi (SPF/DKIM) — ou utilisez
onboarding@resend.devpour les tests locaux - Définissez les variables d'environnement :
| Variable | Purpose |
|---|---|
RESEND_API_KEY | Server-only API key |
EMAIL_FROM | Sender, e.g. My App <noreply@yourdomain.com> |
Gardez aussi BETTER_AUTH_URL alignée sur votre URL publique — Better Auth construit les liens de vérification/reset à partir de celle-ci.
Sans Resend, l'app démarre, mais les emails de vérification et de réinitialisation de mot de passe ne seront pas envoyés.
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 possède les tokens et URLs (src/lib/auth/auth.ts). La couche email ne fait que livrer via les helpers dans src/lib/email/.
Templates
src/lib/email/templates/
shared.tsx # layout, brand name
verification-email.tsx
password-reset-email.tsx
welcome-email.tsxConstruits avec @react-email/components. Modifiez le copy et le style dans les fichiers de template. Nom de marque : shared.tsx.
Add a new transactional email
- Créez
src/lib/email/templates/your-email.tsx(utilisezTransactionalEmailLayoutdepuisshared.tsx) - Exportez
sendYourEmail(...)depuissrc/lib/email/index.ts - Appelez-le depuis une server action, un webhook ou un auth hook — jamais depuis des client components
Seul src/lib/email/client.ts importe le SDK Resend directement.
Auth UI routes
| Route | Purpose |
|---|---|
/forgot-password | Request reset link |
/reset-password | Set new password from email link |
/verify-email | Resend verification |
Forgot-password vérifie isEmailConfigured() et affiche une erreur claire si Resend n'est pas configuré.
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 — flux de vérification et de reset.
Environment Variables — référence des variables d'environnement.