How to send an email using nodemailer
Here’s how to send an email using nodemailer.
First install it:
npm install nodemailer
Then import it in your Node script or app:
import nodemailer from 'nodemailer'
Initialize a transporter object that we’ll use later to send the email:
const transporter = nodemailer.createTransport({
host: 'smtp.yoursmtpserver.com',
port: 465,
secure: true,
auth: {
user: 'smtp_user',
pass: 'smtp_pass',
},
})
⚠️ NOTE: you need to fill those values with a real SMTP server credentials
Now create an options
object with the details of the email you want to send:
const options = {
from: 'flavio@blabla.com',
to: 'flavio@yo.com',
subject: 'Hi!',
html: `<p>Hello</>`,
}
Finally call the sendMail()
method on the transporter
object you created previously, passing options
and a callback that will be executed when it’s finished:
transporter.sendMail(options, (err, info) => {
if (err) {
console.log(err)
} else {
console.log('EMAIL SENT')
}
})
This also accepts a promise-based syntax:
const info = await transporter.sendMail(options)
Full code:
import nodemailer from 'nodemailer'
const sendEmail = () => {
const transporter = nodemailer.createTransport({
host: 'smtp.yoursmtpserver.com',
port: 465,
secure: true,
auth: {
user: 'smtp_user',
pass: 'smtp_pass',
},
})
const options = {
from: 'flavio@blabla.com',
to: 'flavio@yo.com',
subject: 'Hi!',
html: `<p>Hello</>`,
}
transporter.sendMail(options, (err, info) => {
if (err) {
console.log(err)
} else {
console.log('EMAIL SENT')
}
})
}
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025