Documentation

Email (Resend)

Email transactionnel avec Resend — vérification, réinitialisation de mot de passe, templates et ajout de nouveaux emails.

Ouvrir dansChatGPT (s’ouvre dans un nouvel onglet)Claude (s’ouvre dans un nouvel onglet)Cursor (s’ouvre dans un nouvel onglet)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

  1. Créez un compte Resend
  2. Créez une API key (permission d'envoi)
  3. Ajoutez et vérifiez votre domaine d'envoi (SPF/DKIM) — ou utilisez onboarding@resend.dev pour les tests locaux
  4. Définissez les variables d'environnement :
VariablePurpose
RESEND_API_KEYServer-only API key
EMAIL_FROMSender, 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

EmailTriggerTemplate
VerificationSign up / resendverification-email.tsx
Password resetForgot passwordpassword-reset-email.tsx
WelcomeAccount createdwelcome-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.tsx

Construits 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

  1. Créez src/lib/email/templates/your-email.tsx (utilisez TransactionalEmailLayout depuis shared.tsx)
  2. Exportez sendYourEmail(...) depuis src/lib/email/index.ts
  3. 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

RoutePurpose
/forgot-passwordRequest reset link
/reset-passwordSet new password from email link
/verify-emailResend verification

Forgot-password vérifie isEmailConfigured() et affiche une erreur claire si Resend n'est pas configuré.

Where to change this

WhatWhere
Send helperssrc/lib/email/index.ts
Resend client & configsrc/lib/email/client.ts, config.ts
Templatessrc/lib/email/templates/
Auth email hookssrc/lib/auth/auth.ts

Better Auth — flux de vérification et de reset.

Environment Variables — référence des variables d'environnement.