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
Weekly downloads
3.7M
increased by1.42%
Maintainers
1
Install size
468 kB
Created
Weekly downloads
 

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.3.1 2019-10-09

  • Ignore "end" events because it might be "error" after it (dex4er) [72bade9]
  • Set username and password on the connection proxy object correctly (UsamaAshraf) [250b1a8]
  • Support more DNS errors (madarche) [2391aa4]

Readme

Source

Nodemailer

Backers on Open Collective Sponsors on Open Collective

Nodemailer

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

NPM

See nodemailer.com for documentation and terms.

Why version bump to 5?

Nodemailer changed from dns.lookup() to dns.resolve for resolving SMTP hostnames which might be backwards incompatible and thus the version bump. Nodemailer tries first resolve4() and if no match is found then resolve6() and finally reverts back to lookup(). Additionally found DNS results are cached (for 5 minutes). This should make it easier to manage high performance clients that send a lot of messages in parallel.

Having an issue?

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.

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.

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.

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up on our README on Github with a link to your website. [Become a sponsor]

License

Nodemailer is licensed under the MIT license


The Nodemailer logo was designed by Sven Kristjansen.

Keywords

FAQs

Last updated on 09 Oct 2019

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