Raf*_*ita 5 smtp node.js nodemailer
我正在使用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();
});
Run Code Online (Sandbox Code Playgroud)
我还有一个使用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');
Run Code Online (Sandbox Code Playgroud)
当我向localhost smtp服务器发送电子邮件时,我看不到"收到"(请注意:客户端代码中的"me @ localhost").
我错过了什么使它工作?
您可能需要在选项中定义身份验证处理程序
var server = new SMTPServer({
onAuth: function(auth, session, callback) {
callback(null, { user : auth });
},
onData: function(stream, session, callback) {
console.log('received');
},
});
Run Code Online (Sandbox Code Playgroud)
了解有关onAuth 参数的更多信息
如果您收到错误self signed certificate,您可能需要在发送电子邮件之前添加以下内容:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
Run Code Online (Sandbox Code Playgroud)