Tuesday 30 May 2017

Having trouble sending email with node mailer

I am new to using node.js. I have created a form where a visitor can send an email from their email address to one that I have set up to receive the email. The email sends with the correct message content and subject line but it shows my own email account as both the sender and the receiver. If you see a simple solution I am overlooking please tell me where my error is.

var http = require('http');
var express = require('express');
var nodemailer = require('nodemailer');
var bodyParser = require('body-parser');

var urlencodedParser = bodyParser.urlencoded({extended: true});
var app = express();

var smtpTransport = nodemailer.createTransport({
    service: "gmail",
    host: "smtp.gmail.com",
    auth: {
        user: "ommitted",
        pass: "ommitted"
    }
});

app.use(express.static('public'));
app.use(bodyParser.json());

app.post('/', urlencodedParser,function(req, res){
    console.log(req.body);
    var mailOptions={
        to: req.body.to,
        from: req.body.from,
        subject: req.body.subject,
        text: req.body.message,
    }
    console.log(mailOptions);
    smtpTransport.sendMail(mailOptions, function(error, response){
        if(error){
            console.log(error);
            res.end("error");
        }else{
            console.log("Message sent");
            res.redirect('http://www.google.com');
        }
    });
});
var server = http.createServer(app).listen(8081, function() {
    console.log("Express started on port 8081");
});
<div class="col-md-offset-1 col-md-10 col-sm-12">
            <form action="/" method="POST" class="wow fadeInUp" data-wow-delay="0.6s">
                <div class="hidden">
                    <input type="text" class="form-control" name="to" id="to" value="csm@syntriagesolutions.com">
                </div>
                <div class="col-md-4 col-sm-6">
                    <input type="text" class="form-control" placeholder="Name" name="name" id="name">
                </div>
                <div class="col-md-4 col-sm-6">
                    <input type="email" class="form-control" placeholder="Email" name="from" id="from">
                </div>
                <div class="col-md-4 col-sm-12">
                    <input type="text" class="form-control" placeholder="Subject" name="subject" id="subject">
                </div>
                <div class="col-md-12 col-sm-12">
                    <textarea class="form-control" placeholder="Message" rows="7" name="message" id="message"></textarea>
                </div>
                <div class="col-md-offset-2 col-md-8 col-sm-offset-2 col-sm-8">
                    <input type="submit" class="form-control" value="Shoot Message" id="send_email">
                </div>
            </form>
        </div>


via bakrieger

No comments:

Post a Comment