How to send an email using nodemailer
By Flavio Copes
Learn how to send an email from Node.js using nodemailer, from creating an SMTP transporter to defining the message options and sending your first email.
~~~
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: '[email protected]',
to: '[email protected]',
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: '[email protected]',
to: '[email protected]',
subject: 'Hi!',
html: `<p>Hello</>`,
}
transporter.sendMail(options, (err, info) => {
if (err) {
console.log(err)
} else {
console.log('EMAIL SENT')
}
})
} ~~~
Related posts about node: