feat: email de bienvenue automatique via EmailJS

- Ajout du SDK EmailJS (CDN) dans contact.html
- Initialisation EmailJS avec la clé publique dans form-handler.js
- Nouvelle fonction sendWelcomeEmail() : envoie au client son prénom,
  numéro de référence et l'adresse de dépôt Paris (AEIC Forwarding, Orly)
- Appel automatique dans showSuccess() après inscription réussie

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
MVA Global Fret 2026-05-04 15:15:44 +02:00
parent 7ea43c3b72
commit 168a26ba32
2 changed files with 31 additions and 2 deletions

View File

@ -280,6 +280,7 @@
</div> </div>
</footer> </footer>
<script src="https://cdn.jsdelivr.net/npm/@emailjs/browser@4/dist/email.min.js"></script>
<script src="js/translations.js"></script> <script src="js/translations.js"></script>
<script src="js/main.js"></script> <script src="js/main.js"></script>
<script src="js/form-handler.js"></script> <script src="js/form-handler.js"></script>

View File

@ -8,6 +8,16 @@ const HUBSPOT_PORTAL_ID = '148163754';
const HUBSPOT_FORM_GUID = '1d9b75c9-8b60-4966-aa18-4bf503452e9a'; const HUBSPOT_FORM_GUID = '1d9b75c9-8b60-4966-aa18-4bf503452e9a';
const FORMSPREE_ID = 'mojrvokp'; const FORMSPREE_ID = 'mojrvokp';
// ── EMAILJS (email de bienvenue au client) ────────────────────────────────────
const EMAILJS_PUBLIC_KEY = '8KUlaQ7BDVlbkZRyP';
const EMAILJS_SERVICE_ID = 'service_o1yv09o';
const EMAILJS_TEMPLATE_ID = 'yx7jdwi';
// Initialisation EmailJS (une seule fois au chargement)
if (typeof emailjs !== 'undefined') {
emailjs.init({ publicKey: EMAILJS_PUBLIC_KEY });
}
// ── PROXY CLOUDFLARE WORKER ─────────────────────────────────────────────────── // ── PROXY CLOUDFLARE WORKER ───────────────────────────────────────────────────
// URL du Worker qui proxifie l'API HubSpot CRM (contourne le CORS). // URL du Worker qui proxifie l'API HubSpot CRM (contourne le CORS).
// Après déploiement du Worker (voir cloudflare-worker/hubspot-proxy.js), // Après déploiement du Worker (voir cloudflare-worker/hubspot-proxy.js),
@ -94,7 +104,7 @@ function setupContactForm(form) {
setLoading(false); setLoading(false);
if (hubspotOk || formspreeOk) { if (hubspotOk || formspreeOk) {
showSuccess(refNumber); showSuccess(refNumber, data);
} else { } else {
showError(); showError();
} }
@ -248,7 +258,7 @@ function setLoading(isLoading) {
form?.classList.toggle('form-loading', isLoading); form?.classList.toggle('form-loading', isLoading);
} }
function showSuccess(refNumber) { function showSuccess(refNumber, clientData) {
const successEl = document.getElementById('formSuccess'); const successEl = document.getElementById('formSuccess');
const form = document.getElementById('contactForm'); const form = document.getElementById('contactForm');
const refDisplay = document.getElementById('refNumberDisplay'); const refDisplay = document.getElementById('refNumberDisplay');
@ -258,6 +268,24 @@ function showSuccess(refNumber) {
successEl.scrollIntoView({ behavior: 'smooth', block: 'center' }); successEl.scrollIntoView({ behavior: 'smooth', block: 'center' });
} }
if (form) form.style.display = 'none'; if (form) form.style.display = 'none';
// Envoi de l'email de bienvenue au client (sans bloquer l'affichage)
if (clientData) sendWelcomeEmail(clientData);
}
// ── EMAIL DE BIENVENUE ────────────────────────────────────────────────────────
async function sendWelcomeEmail(data) {
if (typeof emailjs === 'undefined') return;
try {
await emailjs.send(EMAILJS_SERVICE_ID, EMAILJS_TEMPLATE_ID, {
firstname: data.firstname,
email: data.email,
reference_client: data.reference_client,
});
} catch (err) {
// L'email de bienvenue est un bonus — on ne bloque pas l'inscription si ça échoue
console.warn('EmailJS welcome email failed:', err);
}
} }
// Affiche le message "déjà client" — ne modifie AUCUNE donnée HubSpot // Affiche le message "déjà client" — ne modifie AUCUNE donnée HubSpot