Firebase nodemailer - проблема с данными снимка - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу получать электронную почту с переменной «mail», «message», «name» .... Как и «Hello {name}, как дела? Ваш адрес электронной почты {mail}, а вот копия вашего {сообщения} от контакта form "..... И проблема в том, что я просто получаю {mail}, а не {message} {name}

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const nodemailer = require('nodemailer');

const gmailEmail = functions.config().gmail.login;
const gmailPassword = functions.config().gmail.pass;

admin.initializeApp();


var goMail = function (message) {


    const transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
            user: gmailEmail,
            pass: gmailPassword
        }
    });

    const mailOptions = {
        from: gmailEmail, 
        to: 'la***@gmail.com', 
        subject: 'Hello ✔', 
        text: '!' + message, 
        html: '!' + message 
    };

    const getDeliveryStatus = function (error, info) {
        if (error) {
            return console.log(error);
        }
        console.log('Message sent: %s', info.messageId);

    };

    transporter.sendMail(mailOptions, getDeliveryStatus);
}; 
exports.onDataAdded = functions.database.ref('/emails/{sessionId}').onCreate(function (snap, context) {

    const createdData = snap.val();
    var text = createdData.mail;
        goMail(text);
});

И вот как выглядит моя база данных в реальном времени

 emails
     -**sesionID*
        mail: "randommail@gmail.com"
        message:"test"
        name:"testname"

Я пробую ДОБАВИТЬ / РЕДАКТИРОВАТЬ это из кода, но это не поможет: - /

   var goMail = function (message, secondmessage)


   const mailOptions = {
        from: gmailEmail, 
        to: 'la***@gmail.com', 
        subject: 'Hello ✔', 
        text: '!' + message +  secondmessage, 
        html: '!' + message +  secondmessage
    };


 var text = createdData.mail;
 var secondtext = createdData.name
 goMail(text, secondtext);

Спасибо всем за ответ и хорошего дня!

1 Ответ

0 голосов
/ 27 февраля 2020

Вы получаете только {{mail}}, потому что это значение уже установлено как постоянное значение для вашей облачной функции, также при вызове вашей функции goMail вашим кодом вы отправляете 2 параметра вместо ожидаемого 1 параметра , попробуйте изменить функцию goMail на (в качестве примера):

var goMail = function (name, message) {


    const transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
            user: gmailEmail,
            pass: gmailPassword
        }
    });

    const mailOptions = {
        from: gmailEmail, 
        to: 'la***@gmail.com', 
        subject: 'Hello ✔', 
        text: '!' + name + message, 
        html: '!' + name + message 
    };

    const getDeliveryStatus = function (error, info) {
        if (error) {
            return console.log(error);
        }
        console.log('Message sent: %s', info.messageId);

    };

    transporter.sendMail(mailOptions, getDeliveryStatus);
}; 

и дайте мне знать, если она работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...