Socket
Socket
Sign inDemoInstall

nodemailer

Package Overview
Dependencies
0
Maintainers
1
Versions
269
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    nodemailer

Easy as cake e-mail sending from your Node.js applications


Version published
Maintainers
1
Install size
468 kB
Created

Package description

What is nodemailer?

Nodemailer is a module for Node.js applications to allow easy email sending. It supports various transport methods and has a simple setup process for sending emails.

What are nodemailer's main functionalities?

Send Emails

This feature allows you to send emails using Nodemailer. The code sample shows how to set up a transporter using Gmail, define mail options, and send an email.

const nodemailer = require('nodemailer');

let transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'your.email@example.com',
    pass: 'yourpassword'
  }
});

let mailOptions = {
  from: 'your.email@example.com',
  to: 'recipient@example.com',
  subject: 'Test Email Subject',
  text: 'Hello world?',
  html: '<b>Hello world?</b>'
};

transporter.sendMail(mailOptions, function(error, info){
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent: ' + info.response);
  }
});

HTML Email Content

Nodemailer allows you to send HTML content in your emails. The code sample demonstrates how to send an email with HTML content.

const nodemailer = require('nodemailer');

let transporter = nodemailer.createTransport({
  // transport configuration
});

let mailOptions = {
  from: 'your.email@example.com',
  to: 'recipient@example.com',
  subject: 'HTML Email',
  html: '<h1>Welcome</h1><p>That was easy!</p>'
};

transporter.sendMail(mailOptions, function(error, info){
  // callback
});

Attachments

Nodemailer supports sending attachments in emails. The code sample shows how to attach a file to an email.

const nodemailer = require('nodemailer');

let transporter = nodemailer.createTransport({
  // transport configuration
});

let mailOptions = {
  from: 'your.email@example.com',
  to: 'recipient@example.com',
  subject: 'Attachment',
  text: 'Please find the attachment.',
  attachments: [
    {
      filename: 'file.txt',
      path: '/path/to/file.txt'
    }
  ]
};

transporter.sendMail(mailOptions, function(error, info){
  // callback
});

Custom Transport Methods

Nodemailer allows the use of custom transport methods for sending emails. The code sample illustrates how to use a custom transport plugin.

const nodemailer = require('nodemailer');
const customTransport = require('my-custom-transport');

let transporter = nodemailer.createTransport(customTransport({
  // custom transport options
}));

// send mail with defined transport object
transporter.sendMail({
  // mail options
}, function(error, info){
  // callback
});

Other packages similar to nodemailer

Changelog

Source

6.7.0 2021-10-11

  • Updated DNS resolving logic. If there are multiple responses for a A/AAAA record, then loop these randomly instead of only caching the first one

Readme

Source

Nodemailer

Nodemailer

Send e-mails from Node.js – easy as cake! 🍰✉️

NPM

See nodemailer.com for documentation and terms.

Having an issue?

Nodemailer supports all Node.js versions starting from Node.js@v6.0.0. Existing test suite does not support such old Node.js versions so all features are not actually tested. From time to time some regression bugs might occur because of this.

First review the docs

Documentation for Nodemailer can be found at nodemailer.com.

Nodemailer throws a SyntaxError for "..."

You are using older Node.js version than v6.0. Upgrade Node.js to get support for the spread operator.

I'm having issues with Gmail

Gmail either works well or it does not work at all. It is probably easier to switch to an alternative service instead of fixing issues with Gmail. If Gmail does not work for you then don't use it. Read more about it here.

I get ETIMEDOUT errors

Check your firewall settings. Timeout usually occurs when you try to open a connection to a port that is firewalled either on the server or on your machine.

I get TLS errors
  • If you are running the code in your own machine, then check your antivirus settings. Antiviruses often mess around with email ports usage. Node.js might not recognize the MITM cert your antivirus is using.
  • Latest Node versions allow only TLS versions 1.2 and higher, some servers might still use TLS 1.1 or lower. Check Node.js docs how to get correct TLS support for your app.
I have a different problem

If you are having issues with Nodemailer, then the best way to find help would be Stack Overflow or revisit the docs.

License

Nodemailer is licensed under the MIT license


The Nodemailer logo was designed by Sven Kristjansen.

Keywords

FAQs

Last updated on 11 Oct 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc