Nodemailer与Firebase函数一起使用时不工作



当我的网络应用程序中创建了一个新的用户帐户时,我正试图给自己发送一封电子邮件。以下是我正在部署到Firebase函数的当前代码:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
const nodemailer = require("nodemailer");
admin.initializeApp();
require("dotenv").config();
const {
SENDER_EMAIL,
SENDER_PASSWORD
} = process.env;
exports.sendEmailNotification = functions.firestore.document("users/{userId}").onCreate(async (snapshot, context) => {
const data = snapshot.data();
// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
host: "smtp.gmail.com",
port: 465,
secure: true,
auth: {
user: SENDER_EMAIL,
pass: SENDER_PASSWORD,
},
});
// send mail with defined transport object
let info = await transporter.sendMail({
from: `"MY_APP_NAME" <${SENDER_EMAIL}>`,
to: "MY_PERSONAL_GMAIL_ACCOUNT",
subject: `A New User Has Joined MY_APP_NAME!`,
text: `A new user has joined MY_APP_NAME. Name: ${data.name}, email: ${data.email}`
});
})

使用node index.js命令在我的机器上运行类似的版本没有问题。问题似乎出在它在Firebase函数上运行时。

根据您当前的代码,它似乎工作正常,正如您所说,它只有在使用node.js的机器中才能正常工作。要获得相同的结果,可能需要遵循的指南是将Nodemailer作为Node.js.的模块

现在,如果你想使用Firebase的云功能,我强烈建议你遵循使用Firebase功能发送电子邮件&Nodemailer指南。

使用Firebase功能和Nodemailer发送电子邮件的附加指南。

对我来说,它失败了,因为它没有导入nodemailer,因为我没有将它安装在实际的functions文件夹中。

如果您正在安装nodemailer或任何软件包,请确保将其安装在实际功能文件夹中。

如果你检查package.json并看到依赖项中有nodemailer,你可以确认它是否已经安装

相关内容

  • 没有找到相关文章