【问题标题】:How can i verify if an email exists with NodeJS without sending verification emails [duplicate]如何在不发送验证电子邮件的情况下使用 NodeJS 验证电子邮件是否存在 [重复]
【发布时间】:2021-10-21 16:01:29
【问题描述】:

如何在不发送电子邮件的情况下验证电子邮件

如果用户使用“asdasdasdada@email.com”之类的电子邮件注册,我需要验证该电子邮件是否存在,然后我可以发送电子邮件。

我已经尝试过使用 deep-email-validator 但它不能正常工作,它说现有的电子邮件无效

async function isEmailValid(email: string) {
  return emailValidator(email);
}

const result = isEmailValid('<my real email>');
console.log(result)

输出:

{
  valid: false,
  validators: {
    regex: { valid: true },
    typo: { valid: true },
    disposable: { valid: true },
    mx: { valid: false, reason: 'MX record not found' },
    smtp: { valid: false }
  },
  reason: 'mx'
}

【问题讨论】:

  • asdasdasdada@email.com 不是有效的电子邮件,因此 API 运行良好,尝试将其发送到 Gmail 并且有回复,嘿,电子邮件无效
  • 是的,但是我验证了我的真实电子邮件,它会抛出一个错误,说它没有找到 smtp 服务器和 mx
  • 您可以使用正则表达式来验证电子邮件,例如:stackoverflow.com/a/46181/8721545, "MX record not found" 可能 MX 记录尚未配置或配置错误

标签: javascript node.js express email email-verification


【解决方案1】:

deep-email-validator 可能会返回不准确的结果,这取决于您的 IP 地址的声誉,甚至可能会损害它 - 请注意。

Verifalia 是一个基于云的托管电子邮件验证 SaaS,它允许在不发送任何验证电子邮件的情况下验证电子邮件地址是否存在,并且对您的 IP 地址没有任何风险:它带有免费且开放的source npm package(适用于 Node.js 和浏览器)您可以轻松插入支持 CommonJS 模块系统以及 ES 模块(在 Node.js v13 及更高版本中可用)的 Node.js 应用程序。

以下是在 Node.js 中使用 Verifalia 验证电子邮件地址的方法,安装后 (npm install verifalia):

const { VerifaliaRestClient } = require('verifalia');

// ...

const verifalia = new VerifaliaRestClient({
    username: 'username',
    password: 'password'
});

const validation = await verifalia
    .emailValidations
    .submit('batman@gmail.com', true);

// At this point the address has been validated: let's print
// its email validation result to the console.

const entry = validation.entries[0];
console.log(entry.inputData, entry.classification, entry.status);

// Prints out something like:
// batman@gmail.com Deliverable Success

要了解有关 Verifalia 工作原理的更多信息,请参阅:https://verifalia.com/how-it-works


免责声明:我是 Verifalia 的 CTO。 ;)

【讨论】:

    猜你喜欢
    • 2011-12-29
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 2012-10-13
    • 2023-03-21
    • 2011-03-03
    相关资源
    最近更新 更多