通过firebase云功能发送电子邮件

问题描述 投票:0回答:1

我有一个包含用户电子邮件的大查询表,我想向他们发送一封时事通讯电子邮件(表格中大约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 <[email protected]>`,
       to: someVar[i],
       bcc: `[email protected]`
       }
       mailOptions.subject = emailsubj ;
       mailOptions.html = emailbody;
       mailTransport.sendMail(mailOptions).then(() => {
        console.log('Uninstall mail sent :', someVar[i]);

       });
       }

我需要改变什么,以便只有一封邮件将发送给用户。

javascript firebase google-bigquery google-cloud-functions
1个回答
1
投票

如果您存储这样的电子邮件:

var someVar = ['[email protected]', '[email protected]'];

你可以这样做:

var someVar = ['[email protected]', '[email protected]'];
var sendTo = someVar.join(','); 
var mailOptions = {
  from: '[email protected]', // sender address
  to: sendTo, // list of receivers
  subject: 'My newsletter', // Subject line
  html: '<b>content</b>', // html body
  // plain: 'Some text' // plain text
};
© www.soinside.com 2019 - 2024. All rights reserved.