Email Checker Website Semrush |best| May 2026
.loading text-align: center; padding: 40px; display: none;
.results.show display: block; animation: fadeIn 0.5s;
.recommendation h4 margin-bottom: 8px; color: #92400e; email checker website semrush
.status.valid color: #10b981; .status.invalid color: #ef4444;
.example-btn padding: 8px 15px; background: #f3f4f6; color: #333; font-size: 0.9rem; 'valid' : 'invalid'`; // Display checks const checksGrid
<div class="loading" id="loading"> <div class="spinner"></div> <p>Checking email validity...</p> </div>
.input-group margin-bottom: 30px;
<script> const emailInput = document.getElementById('emailInput'); const checkBtn = document.getElementById('checkBtn'); const loading = document.getElementById('loading'); const results = document.getElementById('results'); async function checkEmail(email) loading.classList.add('show'); results.classList.remove('show'); try const response = await fetch('/api/check-email', method: 'POST', headers: 'Content-Type': 'application/json' , body: JSON.stringify( email ) ); const data = await response.json(); displayResults(data); catch (error) console.error('Error:', error); alert('Error checking email. Please try again.'); finally loading.classList.remove('show'); function displayResults(data) if (data.error) alert(data.error); return; // Update score document.getElementById('score').textContent = data.checks.score; const statusEl = document.getElementById('status'); statusEl.textContent = data.valid ? '✓ Valid Email' : '✗ Invalid Email'; statusEl.className = `status $data.valid ? 'valid' : 'invalid'`; // Display checks const checksGrid = document.getElementById('checksGrid'); checksGrid.innerHTML = ''; const checks = [ name: 'Format', key: 'format', icon: '📝' , name: 'Domain', key: 'domain', icon: '🌐' , name: 'MX Records', key: 'mx', icon: '📨' , name: 'Disposable', key: 'disposable', icon: '🗑️' , name: 'SMTP', key: 'smtp', icon: '🔌' ]; checks.forEach(check => const checkData = data.checks[check.key]; if (checkData) const div = document.createElement('div'); div.className = 'check-item'; div.innerHTML = ` <div class="check-title">$check.icon $check.name</div> <div class="check-status $checkData.passed ? 'passed' : 'failed'"> $checkData.passed ? '✓ Passed' : '✗ Failed' </div> <div class="check-message">$checkData.message</div> `; checksGrid.appendChild(div); ); // Display recommendation const recommendation = document.getElementById('recommendation'); recommendation.innerHTML = ` <h4>💡 Recommendation</h4> <p>$data.recommendation</p> `; results.classList.add('show'); checkBtn.addEventListener('click', () => const email = emailInput.value.trim(); if (email) checkEmail(email); else alert('Please enter an email address'); ); emailInput.addEventListener('keypress', (e) => if (e.key === 'Enter') checkBtn.click(); ); // Example buttons document.querySelectorAll('.example-btn').forEach(btn => btn.addEventListener('click', () => emailInput.value = btn.dataset.email; checkBtn.click(); ); ); </script> </body> </html> "name": "email-checker", "version": "1.0.0", "description": "Professional email validation tool similar to Semrush", "main": "server.js", "scripts": "start": "node server.js", "dev": "nodemon server.js" , "dependencies": "express": "^4.18.2", "validator": "^13.11.0", "axios": "^1.6.0", "dns": "^0.2.2" , "devDependencies": "nodemon": "^3.0.1"
