首页 > 解决方案 > Nodemailer 错误:缺少“PLAIN”的凭据

问题描述

Nodemailer 几天前正在使用这些确切的设置工作,但新的我突然收到这个错误。我没有clientsID、accessToken 或类似的东西。我只是想为我的学校项目运行这个。请帮忙。

const functions = require("firebase-functions");
const admin = require("firebase-admin");
const nodemailer = require("nodemailer")
const cors = require("cors")({
  origin: true
});

admin.initializeApp();

let transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'xxxxxxxxxg@gmail.com',
    pass: process.env.GMAIL_PASSWORD,
    port: 587,
    secure: false,
  }
});

exports.emailFirma = functions.https.onRequest((req, res) => {

  cors(req, res, () => {
    const { web, email } = req.body;

    const mailOptions = {
      from: 'noreply@gmail.com',
      to: "xxxxxxxxxxxxg@gmail.com",
      subject: `Mail za potvrdu registracije ${email}`,
      html: `Web adresa firme: ${web}, provjeriti ispravnost e-maila: ${email}`
    };
    return transporter.sendMail(mailOptions, (erro) => {
      if (erro) {
        return res.send(erro.toString());
      }
      return res.send('Sent');
    });
  });

});

编辑:我启用了“不太安全”的应用程序和验证码,但它仍然无法正常工作..

标签: firebasegoogle-cloud-functionsnodemailer

解决方案


通过 console.log(process.env.GMAIL_PASSWORD); 在管理员初始化代码之前,您可能会发现它是未定义的。因此,一个快速的解决方法是将您的密码放在像这样的单引号中,直到您找到更好的方法。通过:'你的密码',


推荐阅读