Checkpoint: Implémentation complète du remplacement automatique des variables dans les emails et ajout d'un bouton d'aperçu. Les variables {{nomApprenant}}, {{prenomApprenant}}, {{nomFormation}}, {{nomSequence}}, {{dateDebut}}, {{dateFin}}, {{lieu}}, {{formateur}} sont automatiquement remplacées lors de l'envoi d'emails. Un bouton "Aperçu email" permet de visualiser le rendu final avec des données d'exemple avant l'envoi.
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
import { generateFormationICS } from "./icsGenerator";
|
||||
import { sendEmail as sendEmailViaService, isEmailServiceConfigured } from "./_core/emailSender";
|
||||
import { generateEmailFromTemplate } from "./emailTemplateGenerator";
|
||||
import { EmailVariables } from "./emailTemplateUtils";
|
||||
|
||||
interface EmailParams {
|
||||
to: string;
|
||||
@@ -29,8 +30,12 @@ async function sendEmail(params: EmailParams): Promise<boolean> {
|
||||
/**
|
||||
* Template HTML de base pour les emails (avec template personnalisé)
|
||||
*/
|
||||
async function getEmailTemplate(content: string, templateType: string = 'inscription'): Promise<string> {
|
||||
return await generateEmailFromTemplate(templateType, content);
|
||||
async function getEmailTemplate(
|
||||
content: string,
|
||||
templateType: string = 'inscription',
|
||||
variables?: EmailVariables
|
||||
): Promise<string> {
|
||||
return await generateEmailFromTemplate(templateType, content, variables);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -117,12 +122,23 @@ export async function sendInscriptionConfirmation(params: {
|
||||
contentType: 'text/calendar',
|
||||
})) : undefined;
|
||||
|
||||
// Préparer les variables pour le remplacement
|
||||
const variables: EmailVariables = {
|
||||
nomApprenant: params.apprenantNom,
|
||||
prenomApprenant: params.apprenantPrenom,
|
||||
nomFormation: params.formationNom,
|
||||
nomSequence: params.sequenceNom,
|
||||
dateDebut: params.dates[0]?.dateDebut.toLocaleDateString('fr-FR') || '',
|
||||
dateFin: params.dates[params.dates.length - 1]?.dateFin.toLocaleDateString('fr-FR') || '',
|
||||
lieu: params.lieu,
|
||||
};
|
||||
|
||||
return sendEmail({
|
||||
to: params.apprenantEmail,
|
||||
subject: isConfirmed
|
||||
? `Confirmation d'inscription - ${params.formationNom}`
|
||||
: `Liste d'attente - ${params.formationNom}`,
|
||||
html: await getEmailTemplate(content, 'inscription'),
|
||||
html: await getEmailTemplate(content, 'inscription', variables),
|
||||
attachments,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user