nodemailer를 작동시키는 방법을 알아낼 수 없으며 gmail에 대한 내 자격 증명을 삽입하고 나에게 이메일을 보내려고했지만 나에게 아무 것도 보내지 않았고 잘못하지 않았으므로 혼란 스럽습니다.nodemailer는 어떻게 작동합니까?
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');
});
}
});
});
}
};
내가해야합니까 : 여기
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);
});
};
이메일을 보내는 경로 파일입니다 : 여기
이메일 파일입니다 ... 난 내 코드에서 물건을 잃었 가능성이있다 내가 여기있는 것 옆에 뭐가 있니?
당신이 작은 재현 예를 들어이를 분해 할 수 있습니까? 그리고 패킷 스니퍼를 사용하여 응용 프로그램이 메시지를 보내려고 시도하는지 확인하십시오. – Brad
사용자의 토큰을 포함하는 재설정 된 비밀번호 링크를 사용자에게 보내려고합니다. 이해가 되나요? 패킷 스니퍼에 대해 들어 본 적이 없으니, 링크가 있습니까? – Lion789
내가 말하는 것은 당신의 루트가 무엇인지, 사용자 토큰, 데이터베이스 액세스 등이 문제가되지 않는다는 것입니다. 문제를 nodemailer로 좁히는 간단한 재현 가능한 예제를 만드십시오. 또한 Wireshark를 확인하십시오. http://www.wireshark.org/download.html – Brad