This content originally appeared on DEV Community and was authored by Abayomi Ogunnusi
Hey, fams! today we are going to learn how to send e-mails, right from our IDE using NodeJS. The module of interest is called Nodemailer.
Prerequisites
? NodeJs
? Nodemailer
? Email account
? Steps
Open editor (VSCode ?), initialize your project with the command below
npm init -y
This command initiates a package.json
, package.json.lock
, and index.js
(main entry file). The index.js
will house all our logic.
Dependencies
?Install Nodemailer
npm i nodemailer
? Import the package inside index.js
const nodemailer = require('nodemailer');
??? For security reasons, make sure you install and use dot.env package to prevent your password from being exposed or pushed to GitHub.
Install dotenv
npm i dotenv -S
Require dotenv in your index.js
file. I didn't require it in this project because I am using dummy data.
require('dotenv').config();
Then, create a .env
file your email and password
Email= ***********@gmail.com
Password= ******
Logic
? Your auth logic in index.js
with dotenv
// Gmail account info
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.EMAIL,
pass: process.env.PASSWORD
}
});
? Your auth logic in index.js
without dotenv
. Write the logic below and of course change the email to your own and the password to yours too.
// Gmail account info
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'dsimple@gmail.com',
pass: 'ilovemymama'
}
});
? Next use the mailOption to send your message.
// Email info
const mailOptions = {
from: 'dsimple@gmail.com',
to: 'fams@gmail.com',
subject: 'How to send emails using NodeJS',
text: 'Follow the instructions and you will be fine'
};
? Lastly, write:
// Send email ? and retrieve server response
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
});
When done properly, you should have the following logic in your index.js
. That is if you choose not to use the dotenv
To run: type ?? in your terminal
node index
Note: On your Gmail, do not forget to accept and allow the "Less secure apps" access to use your scripts with your Gmail SMTP connection. Gmail will alert you with an error if this option is off, you need to turn it on.
Multiple emails, CC and BCC
const mailOptions = {
from: 'dsimple@gmail.com',
to: 'fams@gmail.com,myrealfams@gmail.com',
cc: 'lexus@gmail.com',
bcc: 'sugar@gmail.com',
subject: 'How to send emails using NodeJS',
text: 'Follow the instructions and you will be fine'
};
Send attachment
const mailOptions = {
from: 'dsimple@gmail.com',
to: 'fams@gmail.com,myrealfams@gmail.com',
cc: 'lexus@gmail.com',
bcc: 'sugar@gmail.com',
subject: 'How to send emails using NodeJS',
text: 'Follow the instructions and you will be fine',
attachment: [{
filename: "robocop.jpg", path: "./img/robocop.jpg"}]
};
drsimplegraffiti / drsimplegraffiti
Config files for my GitHub profile.
Hi ?, I'm Abayomi
A passionate Web developer from Nigeria
-
? I’m currently working on Bookoroma
-
? I’m currently learning Backend Node Js
-
? I regularly write articles on https://dev.to/drsimplegraffiti
-
? How to reach me abayomiogunnusi@gmail.com
-
? Know about my experiences https://www.linkedin.com/in/abayomi-ogunnusi-974826141/
-
⚡ Fun fact I'm an alien
Connect with me:
Languages and Tools:
Support:
Discuss
What other email ? services can you use apart from Gmail without toggling off the Less Secure App setting?
Reference
Download NodeJs
npm Reference
Nodemailer site
This content originally appeared on DEV Community and was authored by Abayomi Ogunnusi
Abayomi Ogunnusi | Sciencx (2021-07-02T08:43:10+00:00) Send mails using NodeJS. Retrieved from https://www.scien.cx/2021/07/02/send-mails-using-nodejs/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.