通过firebase云功能发送电子邮件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过firebase云功能发送电子邮件相关的知识,希望对你有一定的参考价值。
我有一个包含用户电子邮件的大查询表,我想向他们发送一封时事通讯电子邮件(表格中大约500行)当该功能运行时,它只会在超时之后向30-35位用户发送电子邮件,如果我减少列表到100,它会在一个电子邮件ID上多次发送电子邮件。下面是我的代码 - :bigQuery.query({
exports.date = functions.https.onRequest((req, res) => {
const bigQuery = bigquery({ projectId: 'littleone-150007' });
var someVar = [];
var someVar1 =[];
bigQuery.query({
query:`Select email from table`
useLegacySql: false
}).then(function (rows) {
setValue(rows);
});
function setValue(value) {
someVar = value;
//console.log(someVar); // data is printing here
var someVar = value[0].map(function(o) { return o.email; });
//console.log(someVar);
var i,datalength;
datalength = someVar.length;
var emailsubj=`subject`;
var emailbody=`newsleter body`
for(i=0;i<datalength;i++){
//console.log(someVar[i])
const mailOptions = {
from: `Madhu from Mylo <noreply@firebase.com>`,
to: someVar[i],
bcc: `qa@myloapp.in`
}
mailOptions.subject = emailsubj ;
mailOptions.html = emailbody;
mailTransport.sendMail(mailOptions).then(() => {
console.log('Uninstall mail sent :', someVar[i]);
});
}
我需要改变什么,以便只有一封邮件将发送给用户。
答案
如果您存储这样的电子邮件:
var someVar = ['someemail@mail.com', 'another@mail.com'];
你可以这样做:
var someVar = ['client@mail.com', 'another@mail.com'];
var sendTo = someVar.join(',');
var mailOptions = {
from: 'truironusa@gmail.com', // sender address
to: sendTo, // list of receivers
subject: 'My newsletter', // Subject line
html: '<b>content</b>', // html body
// plain: 'Some text' // plain text
};
以上是关于通过firebase云功能发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
在 Firebase 云功能中通过 nodemailer 发送邮件是不是需要计费帐户?
在云功能 Firebase 中使用 SendGrid 发送交易电子邮件
如何触发 Firebase 云功能以添加用户、生成密码并使用该密码发送邮件