1. Install Nodemailer
npm install nodemailer
2. Import Nodemailer
const nodemailer = require("nodemailer");
3. Create Transporter
const transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: "yourgmail@gmail.com",
pass: "your-app-password",
},
});
4. Create Mail Options
const mailOptions = {
from: "yourgmail@gmail.com",
to: "test@gmail.com",
subject: "Test Mail",
text: "Hello from Node.js",
};
5. Send Mail
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
} else {
console.log("Email Sent: " + info.response);
}
});
Full Working Code
const nodemailer = require("nodemailer");
// Create Transporter
const transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: "yourgmail@gmail.com",
pass: "your-app-password",
},
});
// Mail Data
const mailOptions = {
from: "yourgmail@gmail.com",
to: "test@gmail.com",
subject: "Node.js Mail",
text: "Hello from Node.js Mail",
};
// Send Mail
transporter.sendMail(
mailOptions,
(error, info) => {
if (error) {
console.log(error);
} else {
console.log(
"Email Sent: " + info.response
);
}
}
);
Using SMTP mail Send:
const express = require("express");
const nodemailer = require("nodemailer");
const cors = require("cors");
require("dotenv").config();
const app = express();
// Middleware
app.use(cors());
app.use(express.json());
// SMTP Transporter
const transporter = nodemailer.createTransport({
host: process.env.SMTP_HOST,
port: process.env.SMTP_PORT,
secure: false,
auth: {
user: process.env.SMTP_MAIL,
pass: process.env.SMTP_PASSWORD,
},
});
// Test Route
app.get("/", (req, res) => {
res.send("Mail Server Running");
});
// Send Mail API
app.post("/send-mail", async (req, res) => {
try {
const {
to,
subject,
message
} = req.body;
// Mail Options
const mailOptions = {
from: process.env.SMTP_MAIL,
to: to,
subject: subject,
html: `
<h2>${subject}</h2>
<p>${message}</p>
`,
};
// Send Mail
const info = await transporter.sendMail(
mailOptions
);
res.status(200).json({
success: true,
message: "Email Sent Successfully",
response: info.response,
});
} catch (error) {
res.status(500).json({
success: false,
message: error.message,
});
}
});
// Server Start
app.listen(5000, () => {
console.log(
"Server Running on Port 5000"
);
});