From 464e29b465ed666ff93fea59e02b63ead58c29a8 Mon Sep 17 00:00:00 2001
From: pawan-dot <71133473+pawan-dot@users.noreply.github.com>
Date: Mon, 25 Jul 2022 17:49:46 +0530
Subject: [PATCH] send grid
---
Utils/sendEmail.js | 55 +++++++++-------
controllers/userController.js | 9 ++-
package-lock.json | 115 ++++++++++++++++++++++++++++++++++
package.json | 1 +
4 files changed, 154 insertions(+), 26 deletions(-)
diff --git a/Utils/sendEmail.js b/Utils/sendEmail.js
index 86dc0cd..1529a28 100644
--- a/Utils/sendEmail.js
+++ b/Utils/sendEmail.js
@@ -1,27 +1,36 @@
-import nodeMailer from "nodemailer"
+// import nodeMailer from "nodemailer"
+// const sendEmail = async (options) => {
+// const transporter = nodeMailer.createTransport({
+// host: process.env.SMPT_HOST,
+// port: process.env.SMPT_PORT,
+// service: process.env.SMPT_SERVICE,
+// auth: {
+// user: process.env.SMPT_MAIL,
+// pass: process.env.SMPT_PASSWORD,
+// },
+// });
+// // console.log(process.env.SMPT_PORT)
+// // console.log(process.env.SMPT_MAIL)
+// // console.log(process.env.SMPT_PASSWORD)
+// //console.log(transporter)
+
+// const mailOptions = {
+// from: process.env.SMPT_MAIL,
+// to: options.email,
+// subject: options.subject,
+// text: options.message,
+// };
+
+// await transporter.sendMail(mailOptions);
+// };
+// export default sendEmail;
+import sgMail from '@sendgrid/mail';
+sgMail.setApiKey(process.env.SENDGRID_API_KEY)
+// console.log(process.env.SENDGRID_API_KEY)
const sendEmail = async (options) => {
- const transporter = nodeMailer.createTransport({
- host: process.env.SMPT_HOST,
- port: process.env.SMPT_PORT,
- service: process.env.SMPT_SERVICE,
- auth: {
- user: process.env.SMPT_MAIL,
- pass: process.env.SMPT_PASSWORD,
- },
- });
- // console.log(process.env.SMPT_PORT)
- // console.log(process.env.SMPT_MAIL)
- // console.log(process.env.SMPT_PASSWORD)
- //console.log(transporter)
+ sgMail.send(options)
- const mailOptions = {
- from: process.env.SMPT_MAIL,
- to: options.email,
- subject: options.subject,
- text: options.message,
- };
- await transporter.sendMail(mailOptions);
-};
-export default sendEmail;
+}
+export default sendEmail
diff --git a/controllers/userController.js b/controllers/userController.js
index 0b0d50d..1b9cab2 100644
--- a/controllers/userController.js
+++ b/controllers/userController.js
@@ -103,12 +103,15 @@ export const forgotPassword = catchAsyncErrors(async (req, res, next) => {
user.password = password;
await user.save()
// const message = `Your password reset token are :- \n\n ${resetPasswordUrl} \n\nyour new password is:${password}\n\nIf you have not requested this email then, please ignore it.`;
- const message = `your new password is:${password}\n\nIf you have not requested this email then, please ignore it.`
try {
+
await sendEmail({
- email: user.email,
+
+ to: `${user.email}`, // Change to your recipient
+ from: 'project.edufuture@gmail.com', // Change to your verified sender
subject: `CMP Password Recovery`,
- message,
+ html: `your new password is:
${password}
If you have not requested this email then, please ignore it.`
+
});
res.status(200).json({
diff --git a/package-lock.json b/package-lock.json
index 0d2f82e..281c6ea 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
"version": "1.0.0",
"license": "ISC",
"dependencies": {
+ "@sendgrid/mail": "^7.7.0",
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.0",
"cloudinary": "^1.30.0",
@@ -25,6 +26,41 @@
"validator": "^13.7.0"
}
},
+ "node_modules/@sendgrid/client": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-7.7.0.tgz",
+ "integrity": "sha512-SxH+y8jeAQSnDavrTD0uGDXYIIkFylCo+eDofVmZLQ0f862nnqbC3Vd1ej6b7Le7lboyzQF6F7Fodv02rYspuA==",
+ "dependencies": {
+ "@sendgrid/helpers": "^7.7.0",
+ "axios": "^0.26.0"
+ },
+ "engines": {
+ "node": "6.* || 8.* || >=10.*"
+ }
+ },
+ "node_modules/@sendgrid/helpers": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@sendgrid/helpers/-/helpers-7.7.0.tgz",
+ "integrity": "sha512-3AsAxfN3GDBcXoZ/y1mzAAbKzTtUZ5+ZrHOmWQ279AuaFXUNCh9bPnRpN504bgveTqoW+11IzPg3I0WVgDINpw==",
+ "dependencies": {
+ "deepmerge": "^4.2.2"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/@sendgrid/mail": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-7.7.0.tgz",
+ "integrity": "sha512-5+nApPE9wINBvHSUxwOxkkQqM/IAAaBYoP9hw7WwgDNQPxraruVqHizeTitVtKGiqWCKm2mnjh4XGN3fvFLqaw==",
+ "dependencies": {
+ "@sendgrid/client": "^7.7.0",
+ "@sendgrid/helpers": "^7.7.0"
+ },
+ "engines": {
+ "node": "6.* || 8.* || >=10.*"
+ }
+ },
"node_modules/@tootallnate/once": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
@@ -143,6 +179,14 @@
"node": ">=4"
}
},
+ "node_modules/axios": {
+ "version": "0.26.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
+ "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
+ "dependencies": {
+ "follow-redirects": "^1.14.8"
+ }
+ },
"node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@@ -438,6 +482,14 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"optional": true
},
+ "node_modules/deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/degenerator": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz",
@@ -657,6 +709,25 @@
"node": ">= 0.8"
}
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -1897,6 +1968,32 @@
}
},
"dependencies": {
+ "@sendgrid/client": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-7.7.0.tgz",
+ "integrity": "sha512-SxH+y8jeAQSnDavrTD0uGDXYIIkFylCo+eDofVmZLQ0f862nnqbC3Vd1ej6b7Le7lboyzQF6F7Fodv02rYspuA==",
+ "requires": {
+ "@sendgrid/helpers": "^7.7.0",
+ "axios": "^0.26.0"
+ }
+ },
+ "@sendgrid/helpers": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@sendgrid/helpers/-/helpers-7.7.0.tgz",
+ "integrity": "sha512-3AsAxfN3GDBcXoZ/y1mzAAbKzTtUZ5+ZrHOmWQ279AuaFXUNCh9bPnRpN504bgveTqoW+11IzPg3I0WVgDINpw==",
+ "requires": {
+ "deepmerge": "^4.2.2"
+ }
+ },
+ "@sendgrid/mail": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-7.7.0.tgz",
+ "integrity": "sha512-5+nApPE9wINBvHSUxwOxkkQqM/IAAaBYoP9hw7WwgDNQPxraruVqHizeTitVtKGiqWCKm2mnjh4XGN3fvFLqaw==",
+ "requires": {
+ "@sendgrid/client": "^7.7.0",
+ "@sendgrid/helpers": "^7.7.0"
+ }
+ },
"@tootallnate/once": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
@@ -1988,6 +2085,14 @@
"tslib": "^2.0.1"
}
},
+ "axios": {
+ "version": "0.26.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
+ "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
+ "requires": {
+ "follow-redirects": "^1.14.8"
+ }
+ },
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@@ -2207,6 +2312,11 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"optional": true
},
+ "deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
+ },
"degenerator": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz",
@@ -2370,6 +2480,11 @@
"unpipe": "~1.0.0"
}
},
+ "follow-redirects": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
+ },
"forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
diff --git a/package.json b/package.json
index 6739b84..0cdacda 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
"author": "pawan",
"license": "ISC",
"dependencies": {
+ "@sendgrid/mail": "^7.7.0",
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.0",
"cloudinary": "^1.30.0",