Если вы используете NodeJS v0.9.2 или новее, вы обнаружите, что узел выполняет проверку сертификата по умолчанию для TLS и HTTPS.
Вот примечание к выпуску :
tls, https: проверка сертификата сервера по умолчанию (Бен Нордхейс)
Скорее всего, это основная причина проблемы, с которой вы столкнулись.
Вы можете избежать этой проблемы, просто добавив эту строку перед вызовом:
rejectUnauthorized: false
Но это может иметь серьезные последствия для безопасности.Даже если данные зашифрованы, из-за этого правила проверки обхода посредник может фактически украсть ваши данные.Данные, которые вы будете отправлять, могут не попасть на исходный сервер получателей, а могут быть перенаправлены на сервер хакера.
Это быстрое решение, но не рекомендуемое по вышеуказанной причине.
В идеале вы должны проверить сервер получателя, убедившись, что сертификат подписан доверенным центром сертификации.
Вам может потребоваться дальнейшая отладка с поставщиком smtp, чтобы понять пробел в проверке.У каждого сертификата есть «Тема», а у субъекта - «Общее имя».И может быть несколько «subjectAltNames», связанных с одним и тем же.Во время проверки Node фактически проверяет конечную точку и пытается сопоставить ее с общим именем или одним из subjectAltNames.В случае несоответствия выдается ошибка, подобная той, которую вы получили: Имя хоста / ip не совпадает с альтернативными именами сертификатов
Скорее всего, PORT не является проблемой.Проверка сертификата - это проблема.
Надеюсь, что это решит проблему.