Javascript 使用nodeEmailer发送消息

Javascript 使用nodeEmailer发送消息,javascript,express,nodemailer,mern,Javascript,Express,Nodemailer,Mern,我想用nodeMailer重置密码 以下是我的邮寄路线: /路由/api/auth.js router.post('/user', (req, res) => { const { email } = req.body User.findOne({ email }) .then(user => { if (!user) return res.status(400).json({ msg: 'User does not exist' }); j

我想用nodeMailer重置密码

以下是我的邮寄路线: /路由/api/auth.js

router.post('/user', (req, res) => {
  const { email } = req.body

  User.findOne({ email })
    .then(user => {
      if (!user) return res.status(400).json({ msg: 'User does not exist' });

      jwt.sign(
        { id: user.id },
        config.get('jwtSecret'),
        { expiresIn: 3600 },
        (err, token) => {
          if (err) throw err;
          res.json({
            token,
            user: {
              id: user.id,
              name: user.name,
              email: user.email
            }
          });
          const url = getPasswordResetURL(user, token);
          console.log(url);
          transporter.sendMail(resetPasswordTemplate(user, url), (err, info) => {
          })
        }
      )
    })
});
我的职能是: /模块/mailModule.js

const nodemailer = require('nodemailer');
const config = require('config');

const transporter = nodemailer.createTransport({
  service: "gmail",
  auth: {
    user: config.get('email'),
    pass: config.get('password')
  }
})
const getPasswordResetURL = (user, token) =>
  `http://localhost:3000/password/reset/${user._id}/${token}`

const resetPasswordTemplate = (user, url) => {
  const from = config.get('email')
  const to = user.email
  const subject = "Password Reset"
  const html = `
  <p>Hey ${user.name || user.email},</p>
  <p>We heard that you lost your password. Sorry about that!</p>
  <p>But don’t worry! You can use the following link to reset your password:</p>
  <a href=${url}>${url}</a>
  <p>If you don’t use this link within 1 hour, it will expire.</p>
  `
  return { from, to, subject, html }
}    
module.exports = { transporter, getPasswordResetURL, resetPasswordTemplate }
在我做的第一个文件中

console.log(url)

检查用url更改密码是否有效,但我无法发送此邮件。我没有收到任何消息。第一次这样做时,我从谷歌收到一条消息,没有回复邮件(严重安全警报),有人(我)试图从非谷歌应用程序登录我的帐户。 我只想在一些邮件地址上发送这个url,如果我可以在没有回复邮件地址的情况下发送,那就太好了。 稍后我还计划使用dotenv代替config,但这将在稍后实现

{
  "mongoURI": "atlasClusterLink",
  "jwtSecret": "jwtPassword",
  "email": "myEmail@gmail.com",
  "password": "myPassword"
}