# Email Framework Ce répertoire fournit un **wrapper autour de [Resend](https://resend.com)** pour l'envoi d'emails, ainsi qu'un composant de mise en page React Email réutilisable. Il ne connaît aucun template métier — les features créent leurs propres templates et utilisent ce module pour l'envoi. --- ## Structure ``` src/core/email/ ├── index.js sendEmail, sendBatchEmails └── templates/ ├── index.js re-export └── BaseLayout.js composant de mise en page React Email ``` --- ## Import ```js import { sendEmail, sendBatchEmails } from '@zen/core/email'; import { BaseLayout } from '@zen/core/email/templates'; ``` --- ## Variables d'environnement | Variable | Obligatoire | Description | |----------|-------------|-------------| | `ZEN_EMAIL_RESEND_APIKEY` | Oui | Clé API Resend | | `ZEN_EMAIL_FROM_ADDRESS` | Oui | Adresse expéditeur par défaut | | `ZEN_EMAIL_FROM_NAME` | Non | Nom affiché de l'expéditeur | | `ZEN_EMAIL_LOGO` | Non | URL du logo affiché dans `BaseLayout` | | `ZEN_EMAIL_LOGO_URL` | Non | URL de destination du lien autour du logo | | `ZEN_SUPPORT_EMAIL` | Non | Email affiché dans le footer si `supportSection` est activé | | `ZEN_NAME` | Non | Nom de l'application (fallback du nom affiché dans `BaseLayout`) | --- ## API ### `sendEmail(email)` Envoie un email via Resend. Retourne `{ success, data, error }`. ```js const result = await sendEmail({ to: 'user@example.com', subject: 'Bienvenue', html: '
Bonjour !
', }); if (!result.success) { console.error(result.error); } ``` | Paramètre | Type | Description | |-----------|------|-------------| | `to` | `string \| string[]` | Destinataire(s) | | `subject` | `string` | Objet de l'email | | `html` | `string` | Corps HTML | | `text` | `string` | Corps texte brut (optionnel) | | `from` | `string` | Adresse expéditeur (défaut : `ZEN_EMAIL_FROM_ADDRESS`) | | `fromName` | `string` | Nom expéditeur (défaut : `ZEN_EMAIL_FROM_NAME`) | | `replyTo` | `string` | Adresse de réponse (optionnel) | | `attachments` | `object[]` | Pièces jointes Resend (optionnel) | | `tags` | `object[]` | Tags Resend (optionnel) | --- ### `sendBatchEmails(emails)` Envoie plusieurs emails en une seule requête batch Resend. Retourne `{ success, data, error }`. ```js await sendBatchEmails([ { to: 'a@example.com', subject: 'Sujet A', html: 'A
' }, { to: 'b@example.com', subject: 'Sujet B', html: 'B
' }, ]); ``` Chaque objet du tableau accepte les mêmes paramètres que `sendEmail`. --- ## BaseLayout Composant React Email (`@react-email/components`) qui fournit une structure cohérente : logo ou nom de l'app, titre optionnel, contenu, footer avec copyright et lien support. ```jsx import { render } from '@react-email/render'; import { BaseLayout } from '@zen/core/email/templates'; const html = await render(