2016-06-15 9 views
1

Also verwende ich cloud9 als IDE, nodejs, express und [email protected] und nodemailer-sendgrid-transport. Hier ist mein Code:nodemailer [Fehler: Keine Transportmethode definiert]

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); 
     } 
    }); 
}; 

Und hier die Sendmail-Funktion aufgerufen wird:

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); 
     }); 
    } 
}); 

Aber die E-Mail gesendet wird, nicht zu werden ... Ich erhalte den folgenden Fehler: [Error: No transport method defined]

Ich habe habe viele verschiedene Lösungen ausprobiert. So wie ich es sehe, mache ich genau dasselbe wie in diesem Beispiel: https://sendgrid.com/blog/sending-email-nodemailer-sendgrid/ Ist das vielleicht eine cloud9 Ausgabe? Ich habe es auch mit einem Google Mail-Konto versucht. Gleichen Fehler, nachdem unsichere Anwendungen ermöglicht ...

EDIT: Ok, ich habe ein Upgrade nodemailer auf Version 2.4.2 und neuer Fehler wird geworfen ... [Error: The provided authorization grant is invalid, expired, or revoked]

Antwort

0

Wie die meisten der Zeit ... es sind die kleinen Dinge, Gosh ich in dieser festsaß ... Problem war:

auth: { 
    api_user: "xxx", 
    api_pass: "xxx" 
} 

wie folgt geschrieben worden sein:

auth: { 
    api_user: "xxx", 
    api_key: "xxx" 
} 

das und nodema iers Version ...

Verwandte Themen