Open In App

How to send email with Nodemailer using Gmail account in Node ?

Nodemailer is the Node.js npm module that allows you to send emails easily. In this article, we will cover each step to send email using a Gmail account with the help of nodemailer. 

Prerequisites:

Approach to send email with Nodemailer:

Steps to create the application:

Step 1: Initialise the nodejs with the following command to create a package.json file:



npm init -y

Step 2: Installing required modules

npm install express nodemailer -S

Project Structure:



The updated dependencies in package.json file will look like:

"dependencies": {
"express": "^4.18.2",
"nodemailer": "^6.9.8",

Example: Below is basic example to show how to send mail using nodejs




const nodemailer = require('nodemailer');
 
let mailTransporter =
    nodemailer.createTransport(
        {
            service: 'gmail',
            auth: {
                user: 'xyz@gmail.com',
                pass: '*************'
            }
        }
    );
 
let mailDetails = {
    from: 'xyz@gmail.com',
    to: 'abc@gmail.com',
    subject: 'Test mail',
    text: 'Node.js testing mail for GeeksforGeeks'
};
 
mailTransporter
    .sendMail(mailDetails,
        function (err, data) {
            if (err) {
                console.log('Error Occurs');
            } else {
                console.log('Email sent successfully');
            }
        });

Now open the link https://myaccount.google.com/lesssecureapps to Allow less secure apps: ON. Then use node server.js command to run the above code. It will send the email using gmail account. 

Type the following command in terminal to run code: 

Sent mail:

Note 1: To use this code in any file we just have to import this file and call send() function.

var mail = require('./config/mailer')();
mail.send();

Note 2: To send HTML formatted text in your email, use the “html” property instead of the “text” property in sendMail function.

{ 
from:'"admin" ',
to: "user@gmail.com",
subject:'GeeksforGeeks Promotion',
html:' <p> html code </p>'
}

Note 3: To send an email to more than one receiver, add them to the “to” property in sendMail function, separated by commas.

{
from: '"admin" ',
to: " user1@gmail.com, user2@gmail.com, user3@yahoo.in ",
subject: 'GeeksforGeeks Promotion',
text: 'Check out GeeksforGeeks' + 'best site to prepare for interviews and competitive exams.'
}

Google now have come up with a concept of “Less Secure Apps” which is any application which accepts password as plain text. So to use this the application must have OAuth2 authentication.


Article Tags :