Тестирование домена для электронной почты catchAll в узле js

Я пытаюсь программно проверить, есть ли у домена перехват всех адресов электронной почты, размещенных на нем. Я хотел бы знать, если конкретный домен - т.е. facebook.com - получит электронное письмо, отправленное на blahblah@facebook.com.

В настоящее время я использую узел DNS, чтобы проверить, есть ли у домена сначала записи Mx, а затем я отправляю эхо-запрос на электронную почту, к сожалению, это очень медленно, и мне было интересно, есть ли более быстрый способ обнаружения этого.

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, чтобы увидеть, есть ли у домена электронная почта и отправляет пинг. Это функция, которую я хотел бы заменить, чтобы обнаружить все.

Спасибо,

2 ответа

Решение

Насколько я знаю, ловушки электронной почты для всех ловушек не реализованы в DNS, они настроены на уровне почтового сервера. Так что нет другого способа проверить это, кроме проверки правильности адреса электронной почты.

Обратите внимание, что вам не нужно отправлять электронное письмо для проверки. В течение, скажем, SMTP-сеанса, который возвращает команда RCPT TO: 200 или 250 при успешном завершении, 251 или 551 при пересылке, 252 не может подтвердить, но примет, 450 или 550 почтовый ящик недоступен, 552 превышено хранилище, 553 имя почтового ящика не разрешено. Определив, существует ли подстановочный знак, вы отправите запрос на выход.

В пакете протокола SMTP есть метод проверки имени пользователя.

Другие вопросы по тегам