node-email-mx-checker
Version:
A Node.js library to check MX records for domains
45 lines (44 loc) • 1.02 kB
JavaScript
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