popup.js (view raw)
1// Sauvegarde l'URL de Mailcatcher
2document.getElementById("save-url").addEventListener("click", () => {
3 const url = document.getElementById("mailcatcher-url").value;
4 if (url) {
5 browser.storage.local.set({ mailcatcherUrl: url });
6 alert("URL enregistrée !");
7 }
8});
9
10// Charge l'URL sauvegardée au démarrage
11browser.storage.local.get("mailcatcherUrl").then((data) => {
12 if (data.mailcatcherUrl) {
13 document.getElementById("mailcatcher-url").value = data.mailcatcherUrl;
14 fetchEmails(data.mailcatcherUrl);
15 }
16});
17
18// Rafraîchit la liste des emails
19document.getElementById("refresh-emails").addEventListener("click", () => {
20 browser.storage.local.get("mailcatcherUrl").then((data) => {
21 if (data.mailcatcherUrl) {
22 fetchEmails(data.mailcatcherUrl);
23 } else {
24 alert("Veuillez configurer l'URL de Mailcatcher.");
25 }
26 });
27});
28
29// Récupère les emails depuis Mailcatcher
30function fetchEmails(baseUrl) {
31 const emailList = document.getElementById("email-list");
32 emailList.innerHTML = "<p>Chargement...</p>";
33
34 fetch(`${baseUrl}/messages`)
35 .then((response) => response.json())
36 .then((emails) => {
37 emailList.innerHTML = "";
38 if (emails.length === 0) {
39 emailList.innerHTML = "<p>Aucun email trouvé.</p>";
40 return;
41 }
42 emails.forEach((email) => {
43 const item = document.createElement("div");
44 item.className = "email-item";
45 item.innerHTML = `
46 <strong>${email.sender}</strong> → ${email.recipients.join(", ")}
47 <br><small>${new Date(email.sent_at).toLocaleString()}</small>
48 `;
49 item.addEventListener("click", () =>
50 showEmailDetails(baseUrl, email.id),
51 );
52 emailList.appendChild(item);
53 });
54 })
55 .catch((error) => {
56 emailList.innerHTML = `<p>Erreur : ${error.message}</p>`;
57 });
58}
59
60// Affiche les détails d'un email
61function showEmailDetails(baseUrl, emailId) {
62 fetch(`${baseUrl}/messages/${emailId}.json`)
63 .then((response) => response.json())
64 .then((email) => {
65 alert(
66 `De : ${email.sender}\nÀ : ${email.recipients}\nSujet : ${email.subject}\n\n${email.text_body || email.html_body}`,
67 );
68 })
69 .catch((error) => {
70 alert(`Erreur : ${error.message}`);
71 });
72}