Send email from node js application using nodemailer package
Step 1: Setup new npm package
npm init
Step 2 : Install the following packages: express, dotenv, nodemailer
npm install express
npm install dotenv
npm install nodemailer
Step 3: Create a new .env file in the root directory
Step 4: Add Following Code into the .env file
PORT_NUMBER = 3001
MAIL_HOST=************** /* Mail Host Name (Ex: smtp.gmail.com) */
MAIL_USERNAME=************ /* Mail username */
MAIL_PASSWORD=********** /* Mail password or app password */
MAIL_PORT=465 /* 465 0r 587 */
MAIL_SERVICE=gmail /* Email Service : (Ex: gmail) */
MAIL_SECURE=false /* True or False */
MAIL_FROM=************** /* From Email Address */
Step 5 : To create index.js file add following code
const path = require('path');
const express = require('express');
const app = express();
const dotenv = require('dotenv').config({ path: __dirname+'/.env' })
const env = dotenv.parsed;
const mail = require('./mail'); /* Add External mail.js File */
const portNumber = env.PORT_NUMBER;
app.get('/',(req,res) => {
try {
mail.sendMail();
res.send("Hello Friends.");
}
catch (e) {
console.log('Error :'+e);
}
});
app.listen(portNumber,() => {
console.log(`listening on port ${portNumber}!`);
});
Step 6 : To create index.js file add following code
const dotenv = require('dotenv').config({ path: __dirname+'/.env' })
const env = dotenv.parsed;
const nodemailer = require('nodemailer');
function sendMail()
{
console.log('inside send mail');
const mailOptions = {
to: 'mahendran@mailinator.com',
from: env.MAIL_FROM,
subject: 'Test Local Node JS Email',
text: 'Hi Buddy',
html: "<b>Hello world?</b>",
};
const transporter = nodemailer.createTransport({
host: env.MAIL_HOST,
port: env.MAIL_PORT,
secure: env.MAIL_SECURE,
auth: {
user: env.MAIL_USERNAME,
pass: env.MAIL_PASSWORD
},
});
try
{
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
}catch (e) {
console.log(e);
}
}
module.exports = { sendMail };
Step 7: Run the application
node index.js