require('nodemailer') вызывает сбой развертывания на Openshift

Я пытаюсь интегрировать почту Zoho с приложением Nodejs, используя nodemailer. Я могу сделать это локально, и письма отправляются. Но когда я попытался отправить тот же код в Openshift, он выдал ошибку:

порт 8080 недоступен для развертывания.

Я пробовал разные комбинации, чтобы выяснить причину этого, и как только я удалил var nodemailer = require('nodemailer');, приложение было развернуто.

Зависимость в package.json {"nodemailer": "^3.0.2"}

Кто-нибудь еще сталкивался с подобными проблемами?


person Anurag Dwivedi    schedule 05.04.2017    source источник
comment
Пожалуйста, прочитайте При каких обстоятельствах я могу добавить «срочно» или другие подобные фразы к моему вопросу, чтобы получить более быстрые ответы? - резюмируя, это не идеальный способ обращения к волонтерам и, вероятно, контрпродуктивно для получения ответов. Пожалуйста, воздержитесь от добавления этого к своим вопросам.   -  person halfer    schedule 05.04.2017
comment
Ошибка не в NodeMailer, а в двойном использовании порта 8080 на openshift.   -  person throrin19    schedule 05.04.2017
comment
эта ошибка может быть общей, stackoverflow.com/questions/31511724/   -  person Kalana Demel    schedule 05.04.2017
comment
@Anurag Dwivedi, какая версия узла?   -  person Kalana Demel    schedule 05.04.2017
comment
@KalanaDemel v6.9.2 в моей локальной системе и версия узла по умолчанию, доступная в Openshift.   -  person Anurag Dwivedi    schedule 05.04.2017
comment
@AnuragDwivedi, как настроить nodemailer с помощью zoho? Я пытаюсь создать служебную почту, но все равно получаю ошибки авторизации 535   -  person Elmer Dantas    schedule 16.04.2017
comment
@ElmerDantas, сначала вам нужно создать ключ пароля для конкретного приложения, включив двухфакторную аутентификацию ссылка var nodemailer = require('nodemailer'); var transporter = nodemailer.createTransport({ host: 'smtp.zoho.com', port: 465, secure: true, // использовать аутентификацию SSL: { user: '[email protected]' pass: ‹application-password› } }); Используйте сгенерированный ключ как «пароль приложения» вместо фактического пароля.   -  person Anurag Dwivedi    schedule 17.04.2017
comment
@KalanaDemel Моя текущая версия NodeJs в Openshift — 0.10. Знаете ли вы, есть ли способ обновить его до версии 6.0 (минимальная версия, поддерживаемая nodemailer) без обновления моей учетной записи. Кто-нибудь еще, кто уже сделал это. node.js openshift nodemailer   -  person Anurag Dwivedi    schedule 17.04.2017
comment
@AnuragDwivedi спасибо за ответ, но моя проблема заключалась в том, что моя учетная запись SMTP из Европы, поэтому вместо smtp.zoho.com было smtp.zoho.eu. Я не нашел этого на сайте Zoho, а документы nodemailer рассматривают Zoho как «Know Services», но не принимайте это во внимание. . Я только что узнал об этом, просматривая данные моей учетной записи zoho.   -  person Elmer Dantas    schedule 18.04.2017
comment
на самом деле zoho имеет эту информацию на своем сайте, но только если сайт открывается в соответствии с вашим регионом (первый раз, когда я открыл, это был .com, я только что открыл, и они распознали как .eu)   -  person Elmer Dantas    schedule 18.04.2017


Ответы (1)


Поскольку мы обнаружили, что минимальная версия nodejs nodemailer не соблюдается, обновление версии узла на openshift решит проблему, чтобы обновить версию, используйте rhc для подключения к виртуальной машине и выполните следующие изменения:

Node.js

По умолчанию версия Node.js определяется путем запроса semver.io/node/unstable.

Другой URL-адрес можно указать либо с помощью переменной среды NODE_VERSION_URL, либо установив маркер .openshift/NODE_VERSION_URL в репозитории вашего приложения. Например, вы получите последнюю версию 6.x.x (6.10.2 на сегодняшний день), поместив ее в переменную NODE_VERSION_URL или маркер .openshift/NODE_VERSION_URL:

https://semver.io/node/resolve/6

Если вы используете версию Node.js, отличную от версии по умолчанию, и планируете масштабировать приложение на несколько передач, вы должны использовать переменную среды.

нпм

По умолчанию версия npm определяется запуском npm view npm version.

Другую версию npm можно указать либо через переменную среды NPM_VERSION_URL, либо установив маркер .openshift/NPM_VERSION_URL в репозитории вашего приложения. Например, вы получите последнюю версию 3.x (3.10.10 на сегодняшний день), поместив ее в переменную NPM_VERSION_URL или маркер .openshift/NPM_VERSION_URL:

https://semver.io/npm/resolve/3
person Kalana Demel    schedule 18.04.2017