微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

发送电子邮件到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";

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐