【问题标题】:MERN Stack Email ConfirmationMERN 堆栈电子邮件确认
【发布时间】:2019-12-10 13:16:56
【问题描述】:
我一直在互联网上搜索如何将 Nodemailer 实施到 MERN 堆栈应用程序中,以便在用户登录时发送电子邮件确认。
我已经设置了应用程序并正确登录/注销用户并通过该过程对他们进行身份验证。但是nodemailer、jwt tokens和react前端的实现。
我无法找到一种方法将其实现到我的应用程序中,我希望得到任何建议或正确的方向来学习此特定功能。
这里是 github repo 的链接以查看代码:https://github.com/sethgspivey/mern-stack-two.git
我已经从根目录中的 index.js 文件中获得了 Nodemailer 的初始测试代码。但同样,react 前端的实现是我被挂断的地方。
【问题讨论】:
标签:
node.js
reactjs
mongodb
express
【解决方案1】:
// 带有 unicode 的电子邮件数据
让 mailOption = {
来自:'"" yourcompanyemail@gmail.com',
至:@邮件,
主题:“你好”,
文字:我的消息
};
【解决方案2】:
我在我首先构建的项目中做了类似的事情,您需要构建一个端点,当登录被接受时将被击中:
const router = require("express").Router()
const mailer = require('../controllers/mailerController')
router
.route('/your-end-point-here')
.post(mailer.addToMailList)
module.exports = router
请注意,这使用了我构建的控制器。控制器看起来与此类似:
const nodemailer = require('nodemailer')
module.exports =
{
addToMailList: function (req, res)
{
let { newUser } = req.body
let transporter = nodemailer.createTransport({
service:'gmail',
auth: {
user: 'yourcompanyemail@gmail.com',
pass: 'somepassword'
}
});
message = "You just logged in!"
// setup email data with unicode symbols
let mailOptions = {
from: '"Your Company Name" <yourcompanyemail@gmail.com>', // sender address
to: newUser, // list of receivers
subject: "Welcome Letter", // Subject line
text: message // plain text body
};
// send mail with defined transport object
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return
console.log(error);
}
res.json(info);
});
}
}