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",