UNPKG

node-email-mx-checker

Version:

A Node.js library to check MX records for domains

45 lines (44 loc) 1.14 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const dns = require("dns"); const util = require("util"); const dnsResolveMx = util.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) }; } } exports.checkMx = checkMx; exports.dnsResolveMx = dnsResolveMx; //# sourceMappingURL=index.cjs.map