How to Send Email in Node.js?

How to Send Email in Node.js

Email is an essential communication tool used for both personal and professional purposes. Node.js is a popular runtime environment that enables developers to create server-side applications using JavaScript.


Node.js provides several modules and packages to send emails using different protocols such as SMTP, IMAP, and POP3. In this article, we will focus on sending email using SMTP (Simple Mail Transfer Protocol). SMTP is a standard protocol used to send emails over the internet. We will use the Nodemailer package to emails in Node.js.

Setting up a Mail Server

Before we can send email, we need to set up a mail server. A mail server is a computer program that sends and receives email messages. There are several mail servers available, including Postfix, Sendmail, and Exim. In this article, we will use the Postfix mail server.

To set up Postfix, you can follow these steps:

  1. Install Postfix using your operating system’s package manager.
  2. Configure Postfix to listen on port 25 for incoming emails.
  3. Configure Postfix to allow outgoing emails from your server’s IP address.

Configuring Email Accounts

To send email using Node.js, we need to configure the email account that will be used to send the email. We can configure the email account using the Nodemailer package.

To configure the email account, you can follow these steps:

  1. Create a new Gmail account or use an existing one.
  2. Allow access to less secure apps in your Gmail account settings.
  3. Generate an app password in your Gmail account settings.

Sending Email in Node.js

Now that we have set up a mail server and configured the email account, we can start sending email in Node.js. We will use the Nodemailer package to send email.

Installing Nodemailer

To install Nodemailer, you can use the following command:

npm install nodemailer

Creating a Transporter Object

To send email using Nodemailer, we need to create a transporter object that will contain the email server configuration and authentication details. We can create the transporter object using the following code:

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
  host: '',
  port: 587,
  secure: false,
  auth: {
    user: '[email protected]',
    pass: 'your_app_password',

Sending Email

To send an email using Nodemailer, we need to call the sendMail method of the transporter object. We can create an email message using the following code:

const message = {
  from: '[email protected]',
  to: '[email protected]',
  subject: 'Test Email',
  text: 'This is a test email sent using Node.js',

We can then send the email using the following code:

transporter.sendMail(message, (error, info) => {
  if (error) {
    console.log('Error occurred:', error.message);
  console.log('Message sent successfully!');
  console.log('Server responded with "%s"', info.response);


We have explored how to set up a mail server, configure email accounts, and send email using SMTP. Sending email in Node.js can be a valuable feature for applications that need to send notifications, password reset requests, or other types of email messages.

Follow Us on

Read More

Thank You

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *