import net from "net"; import dns from "dns"; export default function verifyEmailSMTP(email: string): Promise { return new Promise((resolve, reject) => { const domain = email.split("@")[1]; dns.resolveMx(domain, (err, addresses) => { if (err || !addresses.length) { console.log("Invalid email domain."); return; } const mxServer = addresses[0].exchange; console.log(`Connecting to ${mxServer} to verify email...`); const client = net.createConnection(25, mxServer); client.on("connect", () => { console.log("Connected to SMTP server."); client.write("HELO example.com\r\n"); client.write(`MAIL FROM: \r\n`); client.write(`RCPT TO: <${email}>\r\n`); }); client.on("data", (data) => { const response = data.toString(); if (response.includes("250")) { console.log("✅ Email exists!"); resolve(true); } else { console.log("❌ Email does not exist."); resolve(false); } client.end(); }); client.on("error", (err) => { console.log("SMTP verification failed:", err.message); resolve(false); }); }); }); }