nodemailer在托管的Ubuntu 16.04.1 LTS上被阻止

时间:2018-03-22 17:33:56

标签: ubuntu nodemailer

在主机和智能Linux管理员的支持下,我一直在与这个问题作斗争一周。 Postfix已启动并正在运行,邮件用户已存在。我们没有安装防火墙。

如果你可以缩小我的问题,这将是一个很大的帮助。别人有同样的问题吗? nodemailer是正确的库吗?

如果我在Ubuntu实例本身(localhost)或本地工作站上运行脚本没有区别。

摆弄端口和服务器名称没有对任何结果进行排序。

var nodemailer = require('nodemailer');

// Works ok
//var mailUser = 'jelle@googlemail.com'
//var mailPwd = '<pwd>'
//var mailService = 'gmail'

/** fails with log ..

{ Error: connect ECONNREFUSED 127.0.0.1:465
    at Object.exports._errnoException (util.js:1018:11)
    at exports._exceptionWithHostPort (util.js:1041:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
  code: 'ECONNECTION',
  errno: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 465,
  command: 'CONN' }

 */
var mailUser = 'jelle@file.com'
var mailPwd = '<pwd>'
var mailService = 'file.com'

// prepare the email server connection settings
var transporter = nodemailer.createTransport({
    service : mailService,
    port : 465,
    secure : true, // use SSL on port 465 else 587
    auth : {
        user : mailUser,
        pass : mailPwd
    }
});

var mailOptions = {
    from : 'jelle@file.com',
    to : '<any email address>',
    subject : '<subject>',
    text : '<text>'
};


function sendMail() {
    transporter.sendMail(mailOptions, function(error, info) {
        if (error) {
            console.log(error);
        } else {
            console.log('Email sent: ' + info.response);
        }
    })
}

sendMail();

1 个答案:

答案 0 :(得分:0)

我在贝尔格莱德有一位非常聪明的自由职业者。他重新安装了postfix并修复了以下问题。

var smtpTransport = require('nodemailer-smtp-transport');

var transporter = nodemailer.createTransport(smtpTransport({
    host: mailService,
    port: 25,
    secure:false,
    tls: {
        rejectUnauthorized: false
    }
}));

现在工作正常。

请注意,它旨在从localhost运行。