8

我正在使用带有 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

4

3 回答 3

9

service选项仅适用于知名服务。要指定您自己的主机,请设置host

var smtpTransport = nodemailer.createTransport('SMTP', {
    host: 'yourserver.com',
    port: 25,
    auth: {
        user: 'username',
        pass: 'password'
    }
});
于 2014-09-29T12:06:44.783 回答
4

确保您安装了最新的NodeMailer版本

截至今天(2020 年 1 月 15 日),它是 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. 'youremail@gmail.com'
   to: toEmailAddress, // <= recepient email address. ex. 'friendemail@gmail.com'
   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);
});

希望这会有所帮助,谢谢。

于 2020-01-15T14:54:27.470 回答
1
var nodemailer = require('nodemailer');
var smtpTransport = require("nodemailer-smtp-transport");

var transporter = nodemailer.createTransport(smtpTransport({
    host : "example.com",
    port: 25,
    auth : {
        user : "username",
        pass : "password"
    }
}));
于 2016-07-07T14:57:32.280 回答