2016-10-10 322 views
3
我使用nodemailer以发送电子邮件

发送电子邮件到本地主机的SMTP服务器在Node.js的

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: "[email protected]", 
    replyTo: "[email protected]", 
    to: "[email protected]", 
    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服务器本地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'); 

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

我错过了什么使它工作?

+0

你有没有想过这个想法? –

+0

@NicholasKreidberg还没有,但它在我的待办事项列表中。 –

回答

2

您可能需要定义你的选择认证处理器

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

了解更多关于onAuth params

如果你得到的self signed certificate错误,你可能需要发送电子邮件前,包括这个:

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 
相关问题