如何让nodemailer工作?

我无法弄清楚如何让nodemailer工作,我也为gmail插入了我的凭据,并尝试给我发送一封电子邮件,但它没有给我发任何东西,也没有发生错误,所以我很困惑。这可能是我失踪从我的代码的东西...如何让nodemailer工作?

这里是电子邮件文件:

var nodemailer = require('nodemailer'); 

var config = require('./config/config');

var smtpTransport = nodemailer.createTransport("SMTP",{

service: "Gmail",

auth: {

user: config.mailer.auth.user,

pass: config.mailer.auth.pass

}

});

var EmailAddressRequiredError = new Error('email address required');

exports.sendOne = function(templateName, locals, fn) {

if(!locals.email) {

return fn(EmailAddressRequiredError);

}

if(!locals.subject) {

return fn(EmailAddressRequiredError);

}

// template

var transport = smtpTransport;

transport.sendMail({

from: config.mailer.defaultFromAddress,

to: locals.email,

subject: locals.subject,

html: html,

text: text

}, function (err, responseStatus) {

if(err) {

return fn(err);

}

return fn(null, responseStatus.message, html, text);

});

};

这里是路线文件发送电子邮件:

exports.forgotPasswordPost = function(req, res, next) { 

console.log("Forgot Password Post");

if(req.body.email === '') {

console.log('err');

} else {

crypto.randomBytes(48, function(ex, buf) {

var userToken = buf.toString('hex');

console.log(userToken);

User.findOne({email: (req.body.email)}, function(err, usr) {

if(err || !usr) {

res.send('That email does not exist.');

} else {

console.log(usr);

//just call the usr found and set one of the fields to what you want it to be then save it and it will update accordingly

usr.token = userToken;

usr.tokenCreated = new Date();

usr.save(function(err, usr){

// res.redirect('login', {title: 'Weblio', message: 'Your token was sent by email. Please enter it on the form below.'});

console.log(usr);

});

console.log(usr);

var resetUrl = req.protocol + '://' + req.host + '/password_reset/' + usr.token;

console.log(resetUrl);

var locals = {

resetUrl: resetUrl,

};

console.log(locals);

mailer.sendOne('password_reset', locals, function(err, email) {

console.log('email sent');

res.redirect('successPost');

});

}

});

});

}

};

我需要除了我在这里的任何东西?

回答:

我想你需要指向Gmail而不是Gmail。我忘了它是什么,但像gmail.smtp

回答:

sometihng我没有正确识别当地人。

这是为我工作的代码:

var nodemailer = require('nodemailer'); 

var config = require('./config/config');

var smtpTransport = nodemailer.createTransport("SMTP",{

// host: "smtp.gmail.com",

// secureConnection: true,

// port: 465,

service: "Gmail",

//debug : true,

auth: {

user: config.mailer.auth.user,

pass: config.mailer.auth.pass

}

});

var EmailAddressRequiredError = new Error('email address required');

exports.sendOne = function(template, locals, err) {

var message = {

from: config.mailer.defaultFromAddress,

to: locals.email,

subject: locals.subject,

html: locals.html,

text: locals.text

};

console.log('hitlocal email');

console.log(message);

//console.log(message.to.locals.email);

if(!locals.email) {

// console.log('email err');

}

if(!locals.subject) {

console.log('subj err');

}

// template

var transport = smtpTransport;

// console.log('hit here');

// console.log(transport);

transport.sendMail(message, function(err) {

if(err) {

console.log('email js error');

console.log(err);

}

console.log('Message sent')

//return fn(null, responseStatus.message, html, text);

});

};

这是路线文件:

var locals = { 

email: 'first last <' + req.body.email + '>',

subject: 'Password Reset',

html: '<p> Please go to the following link to reset your password.' + resetUrl + '</p>',

text: 'Texty Text it'

};

console.log('locals spot here');

console.log(locals.email);

mailer.sendOne('forgotPassword', locals, function(err) {

console.log('email sent');

});

以上是 如何让nodemailer工作? 的全部内容, 来源链接: utcz.com/qa/265552.html

回到顶部