send grid
This commit is contained in:
parent
816d016111
commit
464e29b465
@ -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 sendEmail = async (options) => {
|
||||||
const transporter = nodeMailer.createTransport({
|
sgMail.send(options)
|
||||||
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
|
||||||
export default sendEmail;
|
|
||||||
|
@ -103,12 +103,15 @@ export const forgotPassword = catchAsyncErrors(async (req, res, next) => {
|
|||||||
user.password = password;
|
user.password = password;
|
||||||
await user.save()
|
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 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 {
|
try {
|
||||||
|
|
||||||
await sendEmail({
|
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`,
|
subject: `CMP Password Recovery`,
|
||||||
message,
|
html: `your new password is: <br/> <strong> ${password}</strong><br/><br/>If you have not requested this email then, please ignore it.`
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
res.status(200).json({
|
res.status(200).json({
|
||||||
|
115
package-lock.json
generated
115
package-lock.json
generated
@ -9,6 +9,7 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@sendgrid/mail": "^7.7.0",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"body-parser": "^1.20.0",
|
"body-parser": "^1.20.0",
|
||||||
"cloudinary": "^1.30.0",
|
"cloudinary": "^1.30.0",
|
||||||
@ -25,6 +26,41 @@
|
|||||||
"validator": "^13.7.0"
|
"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": {
|
"node_modules/@tootallnate/once": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
|
||||||
@ -143,6 +179,14 @@
|
|||||||
"node": ">=4"
|
"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": {
|
"node_modules/base64-js": {
|
||||||
"version": "1.5.1",
|
"version": "1.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
"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==",
|
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
|
||||||
"optional": true
|
"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": {
|
"node_modules/degenerator": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz",
|
||||||
@ -657,6 +709,25 @@
|
|||||||
"node": ">= 0.8"
|
"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": {
|
"node_modules/forwarded": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||||
@ -1897,6 +1968,32 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"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": {
|
"@tootallnate/once": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
|
||||||
@ -1988,6 +2085,14 @@
|
|||||||
"tslib": "^2.0.1"
|
"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": {
|
"base64-js": {
|
||||||
"version": "1.5.1",
|
"version": "1.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
"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==",
|
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
|
||||||
"optional": true
|
"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": {
|
"degenerator": {
|
||||||
"version": "3.0.2",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz",
|
||||||
@ -2370,6 +2480,11 @@
|
|||||||
"unpipe": "~1.0.0"
|
"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": {
|
"forwarded": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
"author": "pawan",
|
"author": "pawan",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@sendgrid/mail": "^7.7.0",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"body-parser": "^1.20.0",
|
"body-parser": "^1.20.0",
|
||||||
"cloudinary": "^1.30.0",
|
"cloudinary": "^1.30.0",
|
||||||
|
Loading…
Reference in New Issue
Block a user