40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import dns from "dns";
|
|
import debugLog from "../../../utils/logging/debug-log";
|
|
|
|
export default function emailMxLookup(
|
|
email?: string,
|
|
debug?: boolean
|
|
): Promise<boolean> {
|
|
return new Promise((resolve, reject) => {
|
|
if (!email) {
|
|
resolve(false);
|
|
return;
|
|
}
|
|
|
|
const domain = email.split("@")[1];
|
|
|
|
dns.resolveMx(domain, (err, addresses) => {
|
|
if (err || !addresses.length) {
|
|
if (debug) {
|
|
debugLog({
|
|
log: err?.message || "No MX records found",
|
|
addTime: true,
|
|
label: "Email MX Lookup",
|
|
type: "error",
|
|
});
|
|
}
|
|
resolve(false);
|
|
} else {
|
|
if (debug) {
|
|
debugLog({
|
|
log: addresses,
|
|
addTime: true,
|
|
label: "MX Records",
|
|
});
|
|
}
|
|
resolve(true);
|
|
}
|
|
});
|
|
});
|
|
}
|