Не запускается код NodeJS

Поддержка
  • Не запускается код через встроенный код, тестил как 18 и 12 NodeJS, за секунду просто быстро проходит действие и ничего в лог
    Через replit все запускается и работает

    код:

    const dns = require('dns');
    const net = require('net');
    
    function checkImapServer(domain) {
        return new Promise((resolve, reject) => {
            dns.resolveMx(domain, (err, addresses) => {
                if (err || addresses.length === 0) {
                    console.log("Не удалось найти IMAP-сервер по домену.");
                    reject(new Error("Не удалось найти IMAP-сервер по домену."));
                    return;
                }
                const mxRecord = addresses[0].exchange;
                const imapServer = mxRecord.startsWith(domain)
                    ? `imap.${domain}`
                    : mxRecord.replace(/\.$/, '').replace(/mail\./, 'imap.');
                console.log(`Найден возможный IMAP-сервер: ${imapServer}`);
                resolve(imapServer);
            });
        });
    }
    
    function testImapServer(imapUrl) {
        return new Promise((resolve, reject) => {
            const socket = net.createConnection(
                { host: imapUrl, port: 993, timeout: 10000 },
                () => {
                    console.log(`Сервер ${imapUrl} доступен.`);
                    socket.end();
                    resolve(true);
                }
            );
    
            socket.on('error', (err) => {
                console.log(`Сервер ${imapUrl} недоступен.`);
                reject(new Error(`Сервер ${imapUrl} недоступен.`));
            });
    
            socket.on('timeout', () => {
                socket.destroy();
                console.log(`Сервер ${imapUrl} недоступен.`);
                reject(new Error('Connection timed out'));
            });
        });
    }
    
    async function findImapServer(emailAddress) {
        const domain = emailAddress.split('@')[1];
        try {
            const imapUrl = await checkImapServer(domain);
            await testImapServer(imapUrl);
            return imapUrl; // Возвращаем IMAP-сервер, если он найден и доступен
        } catch (err) {
            console.error(err.message);
            return null; // Возвращаем null в случае ошибки
        }
    }
    
    // Пример использования:
    (async () => {
        const mail = "ytvxlghvk809407045@chinaxqm.com";
        const imapServer = await findImapServer(mail);
        if (imapServer) {
            console.log(`Найден рабочий IMAP-сервер: ${imapServer}`);
        } else {
            console.log("Не удалось найти рабочий IMAP-сервер.");
        }
    })();
    
    

  • 0 Votes
    20 Posts
    1276 Views
  • 0 Votes
    10 Posts
    1017 Views
  • 0 Votes
    7 Posts
    1016 Views
  • 0 Votes
    1 Posts
    325 Views
  • 0 Votes
    4 Posts
    797 Views