Temp Mail Script -
// Start auto-generating random emails every 20-45 seconds for current email let intervalId = null; function startAutoGenerateEmails() { if (intervalId) clearInterval(intervalId); if (!currentEmail) return; // generate first email after 5 seconds for demo setTimeout(() => { if (currentEmail) generateRandomIncomingEmail(currentEmail); }, 5000); intervalId = setInterval(() => { if (currentEmail) { generateRandomIncomingEmail(currentEmail); // subtle browser notification if allowed if (Notification.permission === "granted") { new Notification("New email received!", { body: "Check your TempMail inbox" }); } } }, 20000 + Math.random() * 25000); // every 20-45 sec }
.message-item.active { background: #e9d8fd; border-left: 3px solid #667eea; }
<script> // ---------- Temp Mail Core Logic (Simulated Backend) ---------- // We'll store messages in localStorage keyed by email address. // For demo, we also generate random incoming emails periodically.
You can save this code as an .html file and open it in your browser. temp mail script
// if selected message still exists, keep it selected, else clear detail if (selectedMessageId && currentMessages.find(m => m.id === selectedMessageId)) { displayMessageDetail(selectedMessageId); } else if (currentMessages.length > 0 && !selectedMessageId) { // auto-select first message selectAndDisplayMessage(currentMessages[0].id); } else if (currentMessages.length === 0) { document.getElementById('emailDetail').innerHTML = '<div class="empty-detail">📭 Inbox is empty</div>'; selectedMessageId = null; } }
function displayMessageDetail(msgId) { const msg = currentMessages.find(m => m.id === msgId); if (!msg) return; const detailDiv = document.getElementById('emailDetail'); const dateObj = new Date(msg.date); const fullDate = dateObj.toLocaleString(); detailDiv.innerHTML = <div class="detail-header"> <div class="detail-subject">${escapeHtml(msg.subject)}</div> <div class="detail-meta">📨 From: ${escapeHtml(msg.from)}</div> <div class="detail-meta">📅 Received: ${fullDate}</div> </div> <div class="detail-body"> ${escapeHtml(msg.body).replace(/\n/g, '<br>')} </div> ; // mark as read (optional) if (!msg.read) { msg.read = true; saveMessagesForEmail(currentEmail, currentMessages); } }
// Add a new incoming message (simulate receiving) function addIncomingMessage(email, from, subject, body) { const messages = loadMessagesForEmail(email); const newMessage = { id: Date.now() + Math.random(), from: from, subject: subject, body: body, date: new Date().toISOString(), read: false }; messages.unshift(newMessage); // newest first saveMessagesForEmail(email, messages); // Start auto-generating random emails every 20-45 seconds
// simple escape to avoid XSS function escapeHtml(str) { if (!str) return ''; return str.replace(/[&<>]/g, function(m) { if (m === '&') return '&'; if (m === '<') return '<'; if (m === '>') return '>'; return m; }).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, function(c) { return c; }); }
// Copy email to clipboard function copyEmailToClipboard() { if (!currentEmail) return; navigator.clipboard.writeText(currentEmail).then(() => { const copyBtn = document.getElementById('copyBtn'); const originalText = copyBtn.innerText; copyBtn.innerText = '✅ Copied!'; setTimeout(() => { copyBtn.innerText = originalText; }, 1500); }).catch(() => { alert('Could not copy, select manually'); }); }
// Optionally add a welcome email setTimeout(() => { if (currentEmail === newEmailAddr) { addIncomingMessage(currentEmail, "welcome@tempmail.demo", "Welcome to TempMail!", "Hello! This is a temporary email address.\n\nAll incoming messages will appear here.\n\nYou can refresh manually or wait for demo emails.\n\nEnjoy spam-free browsing!"); } }, 1000); } // if selected message still exists, keep it
.copy-btn:hover, .refresh-btn:hover { background: #5a67d8; transform: translateY(-1px); }
.email-display { flex: 1; display: flex; align-items: center; gap: 10px; background: white; border: 1px solid #cbd5e0; border-radius: 8px; padding: 8px 15px; }
.detail-header { padding: 20px; border-bottom: 1px solid #e2e8f0; background: #fefcf5; }
// Manual refresh function manualRefresh() { if (currentEmail) { refreshInboxUI(); const refreshBtn = document.getElementById('refreshInboxBtn'); const original = refreshBtn.innerText; refreshBtn.innerText = '✓ Refreshed!'; setTimeout(() => { refreshBtn.innerText = original; }, 800); } }

