SMTP с использованием nodemailer в nodejs без GMail

Я использую почтовую программу node с GMail

smtpTransport = nodemailer.createTransport("SMTP", {
    service: "Gmail",
    auth: {
        user: "myemail ",
        pass: "mypass"
    }
});

который работает нормально, но я хочу использовать свой собственный почтовый сервер вместо GMail.

Этот:

smtpTransport = nodemailer.createTransport("SMTP", {
    service: "mymailservr link url",
    port : 25
    auth: {
        user: "myemail ",
        pass: "mypass"
    }
});

Это вызывает эту ошибку:

подключить ECONNREFUSED


person Hitu    schedule 29.09.2014    source источник
comment
вы уверены, что проблема не в опечатке?   -  person Félix Adriyel Gagnon-Grenier    schedule 12.06.2016


Ответы (2)


Параметр service предназначен только для широко известных служб. Чтобы указать собственный хост, установите хост.

var smtpTransport = nodemailer.createTransport('SMTP', {
    host: 'yourserver.com',
    port: 25,
    auth: {
        user: 'username',
        pass: 'password'
    }
});
person jgillich    schedule 29.09.2014
comment
m получение ошибки {[Ошибка: подключите ECONNREFUSED] код: 'ECONNREFUSED', номер ошибки: 'ECONNREFUSED', системный вызов: 'connect', стадия: 'init'} - person Hitu; 29.09.2014
comment
@Hitu Что именно вы называете host? Поскольку вы указали URL-адрес в своем вопросе, уверены ли вы, что передаете фактическое имя хоста, а не URL-адрес? Попробуйте ping yourhostname в командной строке. - person jgillich; 29.09.2014
comment
host: 'exmaple.com.com.outbound10.mxlogic.net' вот так - person Hitu; 30.09.2014
comment
Я чертовски много пробовал с service .. тот лайнер от тебя сделал все отличия .. большое спасибо - person user2720864; 18.12.2014
comment
вы уверены, что проблема не в опечатке? У меня такое чувство, просто скопируйте вставленный код. - person Félix Adriyel Gagnon-Grenier; 12.06.2016
comment
У меня это работает гладко. Я использовал исходящий порт - person Hidayt Rahman; 21.02.2021

убедитесь, что у вас установлена ​​последняя версия NodeMailer

на сегодня (15.01.2020) это v6.4.2

npm install nodemailer --save

Это должно работать:

const nodemailer = require('nodemailer');

let transporter = nodemailer.createTransport({
   host: 'smtp.server.com', // <= your smtp server here
   port: 2525, // <= connection port
   // secure: true, // use SSL or not
   auth: {
      user: 'userId', // <= smtp login user
      pass: 'E73oiuoiC34lkjlkjlkjlkjA6Bok7DAD' // <= smtp login pass
   }
});

let mailOptions = {
   from: fromEmailAddress, // <= should be verified and accepted by service provider. ex. '[email protected]'
   to: toEmailAddress, // <= recepient email address. ex. '[email protected]'
   subject: emailSubject, // <= email subject ex. 'Test email'
   //text: emailData.text, // <= for plain text emails. ex. 'Hello world'
   html: htmlTemplate // <= for html templated emails
};

// send mail with defined transport object
transporter.sendMail(mailOptions, (error, info) => {
   if (error) {
      return console.log(error.message);
   }
   console.log('Message sent: %s', info.messageId);
});

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

person Rami Ibrahim    schedule 15.01.2020
comment
У вас есть пример бесплатного локального SMTP-сервера, который можно установить в локальной сети? Я запутался, похоже, что nodemailer может использоваться как smtp-сервер, но для всех примеров требуется ВНЕШНИЙ продукт в качестве smtp-сервера ?! - person joedotnot; 31.05.2021