// Sauvegarde l'URL de Mailcatcher document.getElementById("save-url").addEventListener("click", () => { const url = document.getElementById("mailcatcher-url").value; if (url) { browser.storage.local.set({ mailcatcherUrl: url }); alert("URL enregistrée !"); } }); // Charge l'URL sauvegardée au démarrage browser.storage.local.get("mailcatcherUrl").then((data) => { if (data.mailcatcherUrl) { document.getElementById("mailcatcher-url").value = data.mailcatcherUrl; fetchEmails(data.mailcatcherUrl); } }); // Rafraîchit la liste des emails document.getElementById("refresh-emails").addEventListener("click", () => { browser.storage.local.get("mailcatcherUrl").then((data) => { if (data.mailcatcherUrl) { fetchEmails(data.mailcatcherUrl); } else { alert("Veuillez configurer l'URL de Mailcatcher."); } }); }); // Récupère les emails depuis Mailcatcher function fetchEmails(baseUrl) { const emailList = document.getElementById("email-list"); emailList.innerHTML = "

Chargement...

"; fetch(`${baseUrl}/messages`) .then((response) => response.json()) .then((emails) => { emailList.innerHTML = ""; if (emails.length === 0) { emailList.innerHTML = "

Aucun email trouvé.

"; return; } emails.reverse().forEach((email) => { const item = document.createElement("div"); item.className = "email-item"; item.innerHTML = `
${email.subject}
${cleanAddress(email.sender)}
À : ${cleanAddress(email.recipients.join(", "))} • ${new Date(email.created_at).toLocaleString()}
`; item.addEventListener( "click", () => (window.location.href = `${baseUrl}/messages/${email.id}.html`), ); emailList.appendChild(item); }); }) .catch((error) => { emailList.innerHTML = `

Erreur : ${error.message}

`; }); } const cleanAddress = (rawAddress) => rawAddress.replace(/[<>"']/g, "");