почта для nodemailer не работала на сервере Azure

Я пытаюсь отправить почту, используя почтовый API-интерфейс nodemailer с сервера Express JS на Microsoft Azure. Он добивается успеха на локальной машине, но не на лазурном сервере (удаленном). Есть идеи?

 var mail = require("nodemailer").mail;
 mail({from: "[email protected]", // sender address
       to: "[email protected]", // list of receivers
       subject: "subject", // Subject line
       text: "text", // plaintext body
       html: "<b>helloworld</b>" // html body
      });

спасибо, ав


person user3297351    schedule 10.05.2014    source источник
comment
Можете ли вы дать нам исключение или ошибку, которую вы получаете? Таким образом, вам трудно помочь.   -  person David Brossard    schedule 10.05.2014
comment
Использует ли он sendmail по умолчанию? Бьюсь об заклад, на сервере Azure он не установлен/не доступен для установки.   -  person Eugene Kostrikov    schedule 10.05.2014
comment
Спасибо за немедленный ответ. Это не вызвало никаких исключений. Есть идеи.   -  person user3297351    schedule 10.05.2014
comment
@ Евгений Костриков, какое альтернативное решение для этого на лазури?   -  person user3297351    schedule 10.05.2014
comment
Извините, я не профессионал Azure. Вы можете попробовать использовать другой почтовый транспорт.   -  person Eugene Kostrikov    schedule 11.05.2014
comment
Начнем с лучшего описания проблемы. Используете ли вы веб-сайты Azure, мобильные службы Azure, виртуальные машины Azure или облачную службу Azure. Исходя из типа услуги опишите, какую ОС вы используете и ее версию. Затем опишите, как именно вы настраиваете почтовый транспорт. Согласно документации Nodemailer, вы пытаетесь напрямую использовать MX-сервер получателя, что является не лучшим способом отправки электронной почты, и во многих случаях оно будет отклонено (особенно, если исходный IP-адрес принадлежит облачному провайдеру).   -  person astaykov    schedule 12.05.2014
comment
@Astaykov, я использую веб-сайты Azure. Я выбрал сендгрид. Он отлично работает на Azure. Это решило мою проблему.   -  person user3297351    schedule 13.05.2014
comment
конечно, лучшее решение, я бы сказал!   -  person astaykov    schedule 14.05.2014
comment
да. Модуль sendgrid решил эту проблему. Спасибо astakov.   -  person user3297351    schedule 09.06.2014


Ответы (2)


На всякий случай, если кто-то еще столкнется с той же проблемой.

У меня была такая же проблема с запуском Nodemailer на веб-сайте Azure. Наконец, я обнаружил, что проблема в том, что я забыл поставить Nodemailer в качестве зависимости в package.json. Тогда azure не знала, что нужно установить Nodemailer для размещенного сервера.

Добавьте «nodemailer»: «*» в конце списка зависимостей в package.json. Не забудьте добавить «,» после последней строки перед добавлением «nodemailer».

Надеюсь, поможет.

person Nils    schedule 10.10.2014
comment
Это не работает для меня. Версия моего локального узла — 0.10.20, а nodemailer — 1.3.4. Он работает на локальном хосте. На основе этого веб-сайта: azure. microsoft.com/en-us/documentation/articles/ должна использоваться последняя версия узла в Azure, поэтому 0.12.0. Я также пытался добавить двигатели: {node: 0.10.x} в свой package.json, но тоже безрезультатно. Любая помощь? - person newman; 16.05.2015
comment
Ладно, я понял, в чем моя проблема. Ошибка: Неверный логин. Решение состоит в том, чтобы включить менее безопасное приложение из учетной записи Google, как указано в http://stackoverflow.com/questions/19877246/nodemailer-with-gmail-and-nodejs. Еще странно, почему в локалхосте работало, а в азуре нет. - person newman; 16.05.2015

Внесите изменения в файл iisnode.yml для вызова более новой версии nodejs следующим образом: nodeProcessCommandLine: «D:\Program Files (x86)\nodejs\8.5.0\node.exe»

person HamidKhan    schedule 16.03.2018