UNPKG

node-email-mx-checker

Version:

A Node.js library to check MX records for domains

45 lines (44 loc) 1.02 kB
import dns from "dns"; import { promisify } from "util"; const dnsResolveMx = promisify(dns.resolveMx); function getMXRecordsPromise(domain, timeout = 5e3) { return new Promise((resolve, reject) => { const timeoutId = setTimeout(() => { reject(new Error("Timeout reached while fetching MX records")); }, timeout); dns.resolveMx(domain, (err, addresses) => { clearTimeout(timeoutId); if (err) { reject(err); } else { resolve(addresses); } }); }); } async function checkMx(domain, options = {}) { const { timeout = 5e3 } = options; try { const mxRecords = await getMXRecordsPromise( domain, timeout ); return { domain, hasMx: mxRecords.length > 0, mxRecords }; } catch (error) { return { domain, hasMx: false, mxRecords: [], error: error instanceof Error ? error.message : String(error) }; } } export { checkMx, dnsResolveMx }; //# sourceMappingURL=index.js.map