2016-01-07 13 views
5

Sono nuovo di nodejs e provare a inviare la posta da nodemailer modulo, ma ha errore cioè "Unsupported configuration, downgrade Nodemailer to v0.7.1 to use it".Node Mailer di errore: "la configurazione non supportata, downgrade Nodemailer a v0.7.1 per usarlo" in localhost

Ecco il mio codice: -

var nodemailer = require('nodemailer'); 
var mailTransport = nodemailer.createTransport('SMTP', { 
    service: 'Gmail', 
    auth: { 
     user: '[email protected]', 
     pass: 'xxxxxxxxx', 
    } 
}); 

mailTransport.sendMail({ 
    from: '"ABC" <[email protected]>', 
    to: '[email protected]', 
    subject: 'Test', 
    text: 'Thank you for contact.', 
}, function (err) { 
    if (err) 
     console.error('Unable to send email: ' + err); 
}); 
+2

Partenza [la documentazione] (https://github.com/nodemailer/nodemailer#use-the-default-smtp-transport) su come creare un trasporto con le versioni più recenti nodemailer. – robertklep

risposta

12

Per utilizzare nodemailer v1, provare ad applicare queste regole.

var express = require('express'); 
var nodemailer = require("nodemailer"); 
var smtpTransport = require("nodemailer-smtp-transport") 
var app = express(); 

var smtpTransport = nodemailer.createTransport(smtpTransport({ 
    host : "YOUR SMTP SERVER ADDRESS", 
    secureConnection : false, 
    port: 587, 
    auth : { 
     user : "YourEmail", 
     pass : "YourEmailPassword" 
    } 
})); 
app.get('/send',function(req,res){ 
    var mailOptions={ 
     from : "YourEmail", 
     to : "Recipient'sEmail", 
     subject : "Your Subject", 
     text : "Your Text", 
     html : "HTML GENERATED", 
     attachments : [ 
      { // file on disk as an attachment 
       filename: 'text3.txt', 
       path: 'Your File path' // stream this file 
      } 
     ] 
    } 
    console.log(mailOptions); 
    smtpTransport.sendMail(mailOptions, function(error, response){ 
     if(error){ 
      console.log(error); 
      res.end("error"); 
     }else{ 
      console.log(response.response.toString()); 
      console.log("Message sent: " + response.message); 
      res.end("sent"); 
     } 
    }); 
}); 

app.listen(3000,function(){ 
    console.log("Express Started on Port 3000"); 
}); 
+0

TypeError: undefined non è una funzione "smtpTran .." – vinodh

+0

@vinodh puoi controllare che smtpTransport sia importato correttamente? – Jay

+0

ya è correttamente importato – vinodh

1

Si può provare questo con Nodemailer V0.7.1. Ha funzionato per me.

var express = require('express'); 

var bodyParser = require('body-parser'); 

var app = express(); 

app.use(bodyParser()); 

app.get('/', function(req, res) { 

    var html = '<form action="/" method="post">' + 
     'Enter Email id:' + 
     '<input type="text" name="userEmail"placeholder="Email" />' + 
     '<br>' + 
     '<button type="submit">Submit</button>' + 
     '</form>'; 

    res.send(html); 
}); 
app.post('/', function(req, res) { 

    var userEmail = req.body.userEmail; 

    var nodemailer = require('nodemailer'); 

    var transporter = nodemailer.createTransport("SMTP", { 
     host: 'smtp.gmail.com', 
     secureConnection: false, 
     port: 587, 
     auth: { 
      user: 'dhruv******@gmail.com', //Sender Email id 
      pass: '**********' //Sender Email Password 
     } 
    }); 

    var mailOptions = { 
     from: 'dhruv*******@gmail.com', // sender address 
     to: 'dhaval********@gmail.com', // list of receivers 
     subject: 'Message Form ' + userEmail, // Subject line 
     text: 'Hi....' + userEmail // plaintext body 

    }; 

    transporter.sendMail(mailOptions, function(error, info) { 
     if (error) { 
      return console.log(error); 
     } 
     console.log('Message sent: ' + info.response); 
     var html = 'Hello: ' + userEmail + '.<br>' + 
      '<a href="/">Try again.</a>'; 
     res.send(html); 
    }); 

}); 

app.listen(80); 
Problemi correlati