firefox-email-mailcow-tempe.../Files/popup.js
2025-02-20 00:08:40 +01:00

63 lines
2 KiB
JavaScript

const API_BASE = "https://mail.paxcia.net";
const GET_ALIAS_ENDPOINT = "/api/v1/get/alias";
const ADD_ALIAS_ENDPOINT = "/api/v1/add/alias";
document.getElementById("fetch").addEventListener("click", async () => {
try {
const response = await fetch(API_BASE + GET_ALIAS_ENDPOINT, {
credentials: "include" // Ensures the request uses the user's Mailcow session
});
if (!response.ok) throw new Error("Failed to fetch emails");
const aliases = await response.json();
if (aliases.length > 0) {
const latestEmail = aliases[0].address;
document.getElementById("email").value = latestEmail;
} else {
document.getElementById("email").value = "No temp email found";
}
} catch (error) {
console.error(error);
alert("Error fetching email");
}
});
document.getElementById("generate").addEventListener("click", async () => {
const emailPrefix = "temp" + Date.now();
const domain = "paxcia.net";
const newEmail = `${emailPrefix}@${domain}`;
const requestData = {
address: newEmail,
goto: "your_main@paxcia.net", // Redirect emails to your main inbox
active: true
};
try {
const response = await fetch(API_BASE + ADD_ALIAS_ENDPOINT, {
method: "POST",
credentials: "include", // Uses session login
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(requestData)
});
if (!response.ok) throw new Error("Failed to generate email");
document.getElementById("email").value = newEmail;
alert("New email created: " + newEmail);
} catch (error) {
console.error(error);
alert("Error creating email");
}
});
document.getElementById("copy").addEventListener("click", () => {
const emailField = document.getElementById("email");
emailField.select();
document.execCommand("copy");
alert("Copied: " + emailField.value);
});