Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node Mailer Error:"Unsupported configuration, downgrade Nodemailer to v0.7.1 to use it" in localhost

I am new to nodejs and try to send mail from nodemailer module but it has error i.e "Unsupported configuration, downgrade Nodemailer to v0.7.1 to use it".

Here is my code:-

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);
});
like image 832
vineet Avatar asked Jan 07 '16 10:01

vineet


2 Answers

To use nodemailer v1, try to implement this code.

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");
});
like image 182
Jay Avatar answered Oct 31 '22 20:10

Jay


You can try this one with Nodemailer V0.7.1. It worked for 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);
like image 42
Dhruv Gurjar Avatar answered Oct 31 '22 19:10

Dhruv Gurjar