发送电子邮件到Node.js中的localhost smtp服务器

我正在使用nodemailer发送电子邮件

var nodemailer = require('nodemailer'),config = require('./mailer.conf');

var smtpTransport;

console.log('Creating Transport');

//smtp transport configuration
var smtpTransport = nodemailer.createTransport({
    host: config.host,port: config.port,auth: {
        user: config.email,pass: config.password
    }
});

//Message
var message = {
    from: "me@localhost.com",replyTo: "me@localhost.com",to: "me@localhost",subject: "hello"
};

console.log('Sending Mail');
// Send mail
smtpTransport.sendMail(message,function(error,info) {
    if (error) {
        console.log(error);
    } else {
        console.log('Message sent successfully!');
        console.log('Server responded with "%s"',info.response);
    }
    console.log('Closing Transport');
    smtpTransport.close();
});

我还有一个使用smtp-server的本地smtp服务器:

var SMTPServer = require('smtp-server').SMTPServer;

var server = new SMTPServer({
    onData: function(stream,session,callback) {
        console.log('received');
    }
});

server.listen(465);
console.log('listening');

当我向localhost smtp服务器发送电子邮件时,我看不到“收到”(请注意:客户端代码中的“me @ localhost”).

我错过了什么使它工作?

解决方法

您可能需要在选项上定义身份验证处理程序

var server = new SMTPServer({
    onAuth: function(auth,callback) {
        callback(null,{ user : auth });
    },onData: function(stream,callback) {
        console.log('received');
    },});

了解有关onAuth params的更多信息

如果您收到自签名证书错误,则可能需要在发送电子邮件之前包含此错误

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...