gpt4 book ai didi

node.js - 如何在Firebase中免费发送电子邮件?

转载 作者:行者123 更新时间:2023-12-03 12:11:30 26 4
gpt4 key购买 nike

我知道Firebase不允许您使用第三方电子邮件服务发送电子邮件。因此,唯一的方法是通过Gmail发送。

因此,我在互联网上搜索了方法,因此下面的代码片段可以正常工作,并允许我免费发送电子邮件。

export const shareSpeechWithEmail = functions.firestore
.document("/sharedSpeeches/{userId}")
.onCreate(async (snapshot, context) => {
// const userId = context.params.userId;
// const data = snapshot.data();
const mailTransport = nodemailer.createTransport(
`smtps://${process.env.USER_EMAIL}:${process.env.USER_PASSWORD}@smtp.gmail.com`
);


const mailOptions = {
to: "test@gmail.com",
subject: `Message test`,
html: `<p><b>test</b></p>`
};
try {
return mailTransport.sendMail(mailOptions);
} catch (err) {
console.log(err);
return Promise.reject(err);
}
});


我想创建一个模板,因此我将名为 email-templates的程序包用于nodemailer。
但是该函数不会在Firebase控制台中执行,并且不会显示错误并显示与“计费”相关的警告。
export const shareSpeechWithEmail = functions.firestore
.document("/sharedSpeeches/{userId}")
.onCreate(async (snapshot, context) => {

const email = new Email({
send: true,
preview: false,
views: {
root: path.resolve(__dirname, "../../src/emails")
// root: path.resolve(__dirname, "emails")
},
message: {
// from: "<noreply@domain.com>"
from: process.env.USER_EMAIL
},
transport: {
secure: false,
host: "smtp.gmail.com",
port: 465,
auth: {
user: process.env.USER_EMAIL,
pass: process.env.USER_PASSWORD
}
}
});

try {
return email.send({
template: "sharedSpeech",
message: {
to: "test@gmail.com",
subject: "message test"
},
locals: {
toUser: "testuser1",
fromUser: "testuser2",
title: "Speech 1",
body: "<p>test using email <b>templates</b></p>"
}
});
} catch (err) {
console.log(err);
return Promise.reject(err);
}
});

最佳答案

只要您的项目处于Blaze计划中,您就可以肯定使用第三方服务和Cloud Functions发送电子邮件。官方提供的样本甚至建议“如果切换到Sendgrid,Mailjet或Mailgun,请确保对Firebase项目启用计费功能,因为这是向非Google服务发送请求所必需的。”
https://github.com/firebase/functions-samples/tree/master/quickstarts/email-users
无论您使用的是哪种电子邮件系统,此处的关键都是您确实需要升级到Blaze计划才能建立传出连接。

关于node.js - 如何在Firebase中免费发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58934596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com