【问题标题】:How to send an email to existing email address in Firebase realtime dataset如何向 Firebase 实时数据集中的现有电子邮件地址发送电子邮件
【发布时间】:2020-09-22 15:14:10
【问题描述】:

所以我在 Firebase 上有这个实时数据库,其中包含一个电子邮件地址,我希望自动向这些地址发送一封电子邮件。我打算使用 nodemailer,但我在网上找到的每个解决方案都会根据要求发送电子邮件。在这里,我提供我的数据库和代码。任何修改代码的解决方案,以便我可以将电子邮件发送到数据库中的每个地址?非常感谢您的回答

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

/**
* Here we're using Gmail to send 
*/
let transporter = nodemailer.createTransport({
    service: 'gmail',
    auth: {
        user: '',
        pass: ''
    }
});

exports.sendMail = functions.https.onRequest((req, res) => {
    cors(req, res, () => {
      
        // getting dest email by query string
        const dest = req.query.dest;

        const mailOptions = {
            from: '', 
            to: dest,
            subject: '', 
            html: `` 
        };
  
        // returning result
        return transporter.sendMail(mailOptions, (erro, info) => {
            if(erro){
                return res.send(erro.toString());
            }
            return res.send('Sended');
        });
    });    
});

【问题讨论】:

    标签: javascript firebase nodemailer


    【解决方案1】:

    当您需要发送邮件时,您会有一些触发器或事件。
    对于,例如每当有新用户注册并创建节点时,您需要发送一封欢迎电子邮件

    如果您需要,我在上面说过 - 您可以使用 Firebase 实时数据库触发器。
    onCreate 触发器是:

    functions.database.ref(_YOUR_PATH_).onCreate(event => {
         // do your function i.e. send email
    });  
    

    更多信息可以参考这里:Database Triggers

    如果您需要以预定的方式接收所有电子邮件(一个月左右一次)- 您可以使用Cron-Job

    以下是适合您情况的示例:Send Confirmation Emails with Cloud Functions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-01
      • 2014-07-20
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多