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

Kar*_*arl 1 email dns sendmail telnet 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);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这就是我目前通过使用非常不可能的电子邮件来验证收集的方式.该函数checkEmail使用Mx记录来查看域是否有电子邮件并发送ping.这是我想要替换以检测所有捕获的函数.

谢谢,

Mic*_*hip 8

据我所知,Catch-all电子邮件捕获程序未在DNS中实现,它们是在电子邮件服务器级别配置的.因此除了检查电子邮件地址的有效性之外,没有其他方法可以进行测试.

请注意,您无需实际发送电子邮件进行测试.例如,一个SMTP会话,RCPT TO命令返回:成功时为200或250,前进时为251或551,252无法验证但将接受,450或550邮箱不可用,552超出存储,553邮箱名称不允许.在确定是否存在通配符后,您将发送QUIT.