在节点 js 中测试 catchAll 电子邮件的域

Testing a domain for a catchAll email in node js

我正在尝试以编程方式测试某个域是否具有捕获所有托管在其上的电子邮件地址。我想知道是否是某个特定域 - 即。 facebook.com - 将收到一封发送至 blahblah@facebook.com.

的电子邮件

我目前正在使用节点 DNS 查看域是否首先有 Mx 记录,然后我向电子邮件发送 ping,不幸的是这非常慢,我想知道是否有更快的检测方法。

validateDomain: function(domain, array, i, callback) {
    var testEmail = '1qaz2wsx3edc4rfv5tgb@' + domain;
    checkEmail(testEmail, function(validation, addresses, err) {
        if (validation) {
            callback( err, false, array, i);
        } else {
            array.push(domain);
            callback( null, true, array, i);
        }
    });
}

这就是我目前设置的方式,通过使用不太可能的电子邮件来验证一个包罗万象。函数 checkEmail 使用 Mx 记录查看域是否有电子邮件并发送 ping。这是我想替换以检测全部捕获的函数。

谢谢,

据我所知,在 DNS 中并未实现全能电子邮件陷阱,它们是在电子邮件服务器级别配置的。因此,除了检查电子邮件地址的有效性外,没有其他测试方法。

请注意,您不必实际发送电子邮件进行测试。例如,在 SMTP 会话中,RCPT TO 命令 returns:200 或 250 成功,251 或 551 转发,252 无法验证但将接受,450 或 550 邮箱不可用,552 超出存储空间,553 邮箱名称不可用允许。在确定 whether/not 存在通配符后,您将发送 QUIT。

smtp-protocol 包有一个验证用户名的方法。