2016-09-28 3 views
1

Ich habe eine NodeMailer Funktionalität auf meiner Webseite, die ich versuche, lokal zu testen. In meinem Paket.json ist die Version . In meiner Routing-Datei habe ich:Nodemailer Fehler ohne Erklärung

var express = require('express'); 
var router = express.Router(); 
var nodemailer = require("nodemailer"); 


router.get('/', function(req, res, next) { 
    res.render('home'); 
}); 

var smtpTransport = nodemailer.createTransport("SMTP",{ 
    service: "Gmail", 
    auth: { 
    user: "[email protected]", 
    pass: "examplePass" 
    } 
}); 

router.get('/send',function(req,res){ 
    var mailOptions={ 
     from : req.query.from 
    } 
     console.log(mailOptions); 
     smtpTransport.sendMail(mailOptions, function(error, response){ 
    if (error){ 
     console.log(error); 
     res.end("error"); 
    } else { 
     console.log("Message sent: " + response.message); 
     res.end("sent"); 
    } 
    }); 
}); 

module.exports = router; 

Und meiner Seite habe ich ein Skript an der Unterseite, die lautet:

$(document).ready(function(){ 
    var to,from; 
    $(".signup").on("click", function(){ 
    from = $("#search").val(); 

    $.get("/send", 
      {from:from}, 
      function(data){ 
      alert("Thanks :) We'll keep you updated."); 
      location.reload(true); 
      }); 
    }); 
}); 

ich einige Dinge getestet und als ich die Anmeldeschaltfläche klicken Ich kapier das Feld "Von" sowie die Warnmeldung, und die Seite wird neu geladen, nachdem ich die Warnung genehmigt habe.

Das Problem ist, dass die E-Mail in den Posteingang nicht wirklich ankommen, und die Konsole msg (firefox) liest einfach "syntax error send:1:1"

Wenn ich in das Netz des Antrags sehen, ich kann sehen, dass der Statuscode ist 200 OK, aber die Registerkarte "Antwort" sagt nur "Fehler", ohne irgendeine Erklärung.

Ich kann das nicht mit keine Informationen debuggen, also hoffe ich, dass jemand eine Idee hat, warum es nicht funktioniert. Es sollte übrigens funktionieren, weil ich eine andere Seite habe, wo es perfekt funktioniert und im Grunde kopierte Paste von dort ...

Danke.

Antwort

1

Es stellte sich heraus, dass das Problem in den Datenfeldern von der Nodemailer STMP-Funktion war. Speziell habe ich den Parameter 'to: [email protected]' weggelassen.

Ich konnte dieses Problem durch die console.log auf der Server-Seite debuggen und schließlich in diesem Beitrag zu stoßen, die mich auf die Idee brachte wieder die Funktionsfelder zu überprüfen: Sending email from local host with Nodemailer

Auf jeden Fall, das Hinzufügen der ' zu: 'Zusätzlich zu dem' von: 'Hat den Trick gemacht.