сетевые решения SMTP настройка почты через nodemailer - PullRequest
0 голосов
/ 11 сентября 2018

, когда я использую следующую конфигурацию почтовой программы:

options = {
     host: 'smtp.XXXX.com',
     port: 2525,
    secure: false,
    ignoreTLS: true,
    authMethods: ['PLAIN', 'LOGIN', 'XOAUTH2'],
    auth: { 
        user: 'no_reply@XXXX.com', 
        pass: 'XXXXX' 
},  

возвращает ошибку, т.е.

enter image description here

и когда я использую следующие конфигурации:

options = {
        host: 'smtp.XXXX.com',
        port: 465,
        secure: true,
        ignoreTLS: true,
        authMethods: ['PLAIN', 'LOGIN', 'XOAUTH2'],
        auth: { 
            user: 'no_reply@XXXX.com', 
            pass: 'XXXXX' 
        },  
    }; 

выдает ошибку: ECONNREFUSED с кодом ошибки ECONNECTION Я не знаю, какой порт и конфигурации я должен использовать для сетевых решений SMTP.

1 Ответ

0 голосов
/ 12 сентября 2018

Если вы используете NodeJS v0.9.2 или новее, вы обнаружите, что узел выполняет проверку сертификата по умолчанию для TLS и HTTPS.

Вот примечание к выпуску :

tls, https: проверка сертификата сервера по умолчанию (Бен Нордхейс)

Скорее всего, это основная причина проблемы, с которой вы столкнулись.

Вы можете избежать этой проблемы, просто добавив эту строку перед вызовом:

rejectUnauthorized: false

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

Это быстрое решение, но не рекомендуемое по вышеуказанной причине.

В идеале вы должны проверить сервер получателя, убедившись, что сертификат подписан доверенным центром сертификации.

Вам может потребоваться дальнейшая отладка с поставщиком smtp, чтобы понять пробел в проверке.У каждого сертификата есть «Тема», а у субъекта - «Общее имя».И может быть несколько «subjectAltNames», связанных с одним и тем же.Во время проверки Node фактически проверяет конечную точку и пытается сопоставить ее с общим именем или одним из subjectAltNames.В случае несоответствия выдается ошибка, подобная той, которую вы получили: Имя хоста / ip не совпадает с альтернативными именами сертификатов

Скорее всего, PORT не является проблемой.Проверка сертификата - это проблема.

Надеюсь, что это решит проблему.

...