Created
July 10, 2015 15:48
-
-
Save feliphebueno/ace41f9ab1c22e722c68 to your computer and use it in GitHub Desktop.
Simple mail sender node js api, based on http post request.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* | |
* main.js | |
* simple mail sender nodejs api | |
* requires express, body-parser, nodemailer | |
*/ | |
var server = httpServer(); | |
server.listen(8085); | |
console.log("Nodejs Server started and listening for client requests on port 8085"); | |
console.log("Server time: "+ (new Date())); | |
console.log("\n----------------\n"); | |
function httpServer(){ | |
var bodyParser = require("body-parser"); | |
var app = require('express')(); | |
app.use(bodyParser.urlencoded({ extended: false })); | |
var http = require('http').Server(app); | |
app.post('/mail', function(req, res){ | |
res.header("p3p", '"CP="CAO PSA OUR"'); | |
res.header("Access-Control-Allow-Origin", "http://your-domain.com"); | |
var requestData = req.body; | |
if (verifyRequest(requestData)) { | |
sendMail(requestData, res); | |
} else { | |
res.send({'sucess': false, response: "Wrong paramters sent."}); | |
console.log(req); | |
} | |
}); | |
return http; | |
} | |
var nodemailer = require("nodemailer"); | |
function sendMail(data, res){ | |
var transporter = nodemailer.createTransport({ | |
service: "Gmail", | |
auth: { | |
user: "[email protected]", | |
pass: "pass" | |
}, | |
tls: { | |
rejectUnauthorized: false // allow invalid certificates | |
} | |
}); | |
var mailOptions = { | |
from: "User <[email protected]>", // sender address | |
to: "DEST <[email protected]>", // comma separated list of receivers | |
subject: "Subject", // Subject | |
html: getEmailMessage(data) // html body | |
//text : "Message." //plain text body | |
}; | |
transporter.sendMail(mailOptions, function(error, info){ | |
if(error){ | |
res.send({'success': false, response: error.response +"<br />"}); | |
console.log(error); | |
} else { | |
res.send({'success': true, response: "Your message has been succesfully sent!"}); | |
console.log("Message sent!"); | |
} | |
res.end(); | |
}); | |
} | |
function getEmailMessage(data) { | |
return 'New message from:' | |
+'<br />' | |
+'<br />' | |
+'Name: '+ data.name | |
+'<br />' | |
+'<br />' | |
+'Email: '+ data.email | |
+'<br />' | |
+'<br />' | |
+'Message: <br />'+ data.message | |
+'<br />' | |
+'<br />' | |
+'<hr />'; | |
} | |
function verifyRequest(data){ | |
if (data.name.length > 3 && data.email.length > 3 && data.message.length > 3) {local | |
return true; | |
} else { | |
return false; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment