【问题标题】:Testing a domain for a catchAll email in node js在节点 js 中为 catchAll 电子邮件测试域
【发布时间】:2015-08-08 04:08:45
【问题描述】:

我正在尝试以编程方式测试域上是否托管了一个捕获所有电子邮件地址。我想知道一个特定的域 - 即。 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。这是我想替换来检测全部捕获的函数。

谢谢,

【问题讨论】:

  • 请注意,某些设置可能包含前端网关,即使实际的邮件服务器无法识别任何地址的消息(即没有在消息网关上配置地址验证),它们也会接受任何地址的消息。综上,存在无法验证catch-all地址存在的情况。
  • 对不起,我是个吹毛求疵的人,但是您在“使用非常不可能的电子邮件”中错误地使用了“电子邮件”。你的意思是一个电子邮件地址email 是实际的文本。不幸的是,很多人都错误地缩写了这个:-(

标签: node.js email dns sendmail telnet


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    据我所知,没有在 DNS 中实现包罗万象的电子邮件陷阱,它们是在电子邮件服务器级别配置的。因此,除了检查电子邮件地址的有效性之外,没有捷径可以测试。

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

    【讨论】:

    • 此外,我希望邮政主管不会喜欢人们试图将实际电子邮件发送到虚假地址。
    • @Rhialto 作为邮政局长,我完全同意。你会惊讶于我收到了多少这样的“发现”类型的电子邮件。
    猜你喜欢
    • 1970-01-01
    • 2016-09-07
    • 2022-01-20
    • 1970-01-01
    • 2017-11-28
    • 2011-05-26
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多