Ejemplo
isPersonalEmail("name@gmail.com") // true isPersonalEmail("name@companyName.com") // falseNo puedo encontrar el paquete NPM. Necesito revisar el correo electrónico en el servidor node.js.
Encontré dos paquetes npm que puedes usar para lograr eso:
El paquete se basa en dominios bloqueados por HubSpot
Brinda la misma solución, con la ventaja de tener la opción de usar todos los dominios 4k en la lista, o solo los 312 dominios comunes . él define común de la siguiente manera:
common.json contiene aquellos con un rango Majestic Million de <100000.
También me topé con un problema relevante que tal vez desee considerar cuando extraiga el dominio.
const emailProviders = require("email-providers/all.json") const parser = require('tld-extract'); const validator = require('validator'); const companyEmail = "name@companyName.com" const personalEmail = "name@gmail.com" const personalEmailWithSubdomain = "name@abc.gmail.com" // 1. You should validate that the string is an actual email as well // if (!validator.isEmail(email)) return error or something... const isPersonalEmail = (email) => { // 2. Extract the domain const broken = email.split('@') const address = `http://${broken[broken.length - 1]}` const { domain } = parser(address); // 3. And check! return emailProviders.includes(domain) } console.log(isPersonalEmail(companyEmail)) // false console.log(isPersonalEmail(personalEmail)) // true console.log(isPersonalEmail(personalEmailWithSubdomain)) // true