102 lines
No EOL
3.5 KiB
Markdown
102 lines
No EOL
3.5 KiB
Markdown
# Système d'Email Universel - Guide Développeur
|
|
|
|
## État actuel du système
|
|
|
|
✅ **PRÊT À L'EMPLOI** - Le système universel avec template centralisé et textes configurables est maintenant activé en production.
|
|
|
|
## Fonctionnement
|
|
|
|
### Quand tu annules/modifies/crées un CDDU :
|
|
1. **Template utilisé** : `templates-mails/universal-template.html` (Handlebars)
|
|
2. **Textes** : Fusion entre `templates-mails/texts.json` et templates intégrés
|
|
3. **Rendu** : Handlebars + conversion data-attributes → inline CSS
|
|
4. **Envoi** : SES via `sendUniversalEmailV2()`
|
|
|
|
### Flux d'emails CDDU
|
|
- **Création** : `contract-created` → `sendContractNotifications()`
|
|
- **Modification** : `contract-updated` → `sendContractUpdateNotifications()`
|
|
- **Annulation** : `contract-cancelled` → `sendContractCancellationNotifications()`
|
|
|
|
## Tests en développement
|
|
|
|
### 1. Preview local (dry-run)
|
|
```bash
|
|
# Prévisualiser l'email d'annulation
|
|
node scripts/send-test-email.js --template universal-template.html --sample annulation
|
|
|
|
# Ouvrir tmp/send-preview.html dans le navigateur
|
|
```
|
|
|
|
### 2. Envoi réel SES
|
|
```bash
|
|
# Configuration environnement (exemple)
|
|
export AWS_ACCESS_KEY_ID=your_key
|
|
export AWS_SECRET_ACCESS_KEY=your_secret
|
|
export AWS_REGION=eu-west-3
|
|
export FROM_EMAIL=paie@odentas.fr
|
|
|
|
# Envoi test
|
|
node scripts/send-test-email.js --template universal-template.html --sample annulation --to dev@example.com --send
|
|
```
|
|
|
|
### 3. Données personnalisées
|
|
```bash
|
|
# Créer data.json avec vos données
|
|
echo '{"employeeName":"Test User","contractReference":"TEST-123"}' > data.json
|
|
|
|
# Utiliser le fichier de données
|
|
node scripts/send-test-email.js --data data.json --sample annulation --to dev@example.com --send
|
|
```
|
|
|
|
## Personnalisation
|
|
|
|
### Modifier les textes
|
|
Éditer `templates-mails/texts.json` :
|
|
```json
|
|
{
|
|
"contract-cancelled": {
|
|
"subject": "CDDU annulé - {{employeeName}}",
|
|
"title": "Contrat CDDU annulé",
|
|
"mainMessage": "Votre contrat a été annulé."
|
|
}
|
|
}
|
|
```
|
|
|
|
### Modifier le design
|
|
Éditer `templates-mails/universal-template.html` :
|
|
- Couleurs : utiliser data-attributes (ex: `data-button-color="{{buttonColor}}"`)
|
|
- Structure : HTML + Handlebars (`{{#if}}`, `{{#each}}`)
|
|
|
|
## Production vs Ancien système
|
|
|
|
| Aspect | Ancien | Nouveau (actuel) |
|
|
|--------|--------|------------------|
|
|
| Templates | Individuels (annulationCDDU.html, etc) | Universel (universal-template.html) |
|
|
| Textes | Hard-codés dans templates | Centralisés (texts.json) |
|
|
| Logique | Regex string replace | Handlebars |
|
|
| Styles | CSS statique | Data-attributes → inline CSS |
|
|
| Maintenance | 3+ fichiers à synchroniser | 1 template + 1 fichier textes |
|
|
|
|
## Notes importantes
|
|
|
|
- ⚠️ **SES Sandbox** : Vérifier les adresses destinataires si le compte est en sandbox
|
|
- ⚠️ **FROM_EMAIL** : Doit être une adresse vérifiée dans SES
|
|
- ✅ **TypeScript** : Le système compile sans erreurs
|
|
- ✅ **Backward compatible** : L'ancien `sendEmail()` reste disponible pour d'autres usages
|
|
|
|
## Dépannage
|
|
|
|
### Email non reçu
|
|
1. Vérifier les logs de la console pour les erreurs SES
|
|
2. Vérifier que FROM_EMAIL est vérifié dans AWS SES
|
|
3. Vérifier que le destinataire est vérifié (si sandbox)
|
|
|
|
### Template cassé
|
|
1. Tester avec `scripts/send-test-email.js` en dry-run
|
|
2. Vérifier la syntaxe Handlebars dans `universal-template.html`
|
|
3. Vérifier que `texts.json` est un JSON valide
|
|
|
|
### Styles incorrects
|
|
1. Les couleurs dynamiques doivent utiliser data-attributes
|
|
2. Éviter les placeholders `{{...}}` dans les blocs `<style>`
|
|
3. Le service convertit automatiquement data-* → style inline |