그래서 cloud9를 IDE, nodejs, express 및 [email protected] 및 nodemailer-sendgrid-transport로 사용하고 있습니다. 센드 메일 함수가 호출되는 여기nodemailer [오류 : 정의 된 전송 방법 없음]
var nodemailer=require('nodemailer');
var sgTransporter = require('nodemailer-sendgrid-transport');
var options={
auth: {
api_user: "xxx",
api_pass: "xxx"
}
};
var client = nodemailer.createTransport(sgTransporter(options));
var sendMail=function(emailTo, subject, html, fn){
var mailOptions={
from:'xxx',
to:emailTo,
subject:subject,
html:html
};
client.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
fn(error);
}
else{
console.log("Message sent: " + response.message);
fn(response);
}
});
};
: 그리고 여기 내 코드의
router.get('/verifyEmail', function(req,res){
if(req.isAuthenticated()) {
var subject='Verify your email address';
var link="https://myapp-myuser.c9users.io/verify/:"+req.user._id;
var html='Hello,<br> Please Click on the link to verify your Account.<br><a href='+link+'>Click here to verify</a>';
console.log('Sending verification email to: '+req.user.email);
sendMail(req.user.email,subject, html,function(error, response){
if (error){
return res.status(400).json({error:error});
}
return res.status(200).json(response);
});
}
});
하지만 이메일이 전송되지 않는 ... 나는 다음과 같은 오류 얻을 : 내가 가지고있는 [Error: No transport method defined]
을 많은 다른 해결책을 시도했다. 내가 본대로, 나는이 예제에서와 똑같은 일을하고있다. https://sendgrid.com/blog/sending-email-nodemailer-sendgrid/ 아마도 이것은 cloud9 문제 일까 ?? Gmail 계정을 사용해 보았습니다. 같은 오류가 안전하지 않은 애플리케이션을 허용 한 후 ...
편집은 : 버전 2.4.2과 새로운 오류로 좋아, 내가 업그레이드 한 nodemailer이 시대의 가장으로 ... [Error: The provided authorization grant is invalid, expired, or revoked]