как отправить пользователю несколько писем с помощью функции mailgun и firebase - PullRequest
0 голосов
/ 14 июля 2020

Я использую функцию firebase для отправки электронных писем пользователям, использующим mailgun. У меня есть массив писем, которые я извлекаю из функции https и делаю forEach в этом массиве писем и вызываю функцию mailgun, которую я создал в другом файле. Но когда есть небольшое количество писем, он отправляет электронные письма успешно, но когда есть 100 писем, он не отправляет электронную почту.

Вот мой код, пожалуйста, посмотрите

index.js

// firebase https function which i'm calling from my app

exports.SendMsgEmail = functions.https.onCall((data, context) => {

console.log("****************send msg email to parent*********");

let msg = data.msg;
let companyName = data.companyName;
let companyImage = data.companyImage;
let emailArray = data.emails;

console.log('total emails',emailArray.length);
console.log('message=====>',msg);

emailArray.forEach(async(value) => {

    if (value) {
        console.log('sending msg email to parent',value)
        let emailData = {
            recipient: value,
            companyImage: companyImage ? companyImage : "",
            companyName: companyName,
            message: msg,
            msgDate: moment(new Date()).format('MMMM Do YYYY, h:mm:ss a'),
        };
        emailUtils.sendParentMsgEmail(emailData)
    }

});
return {message:'sucess'}
})

emailUtils.js

// mailgun function which i call in index.js https function

exports.sendParentMsgEmail = async function(data) {
let template = await loadTemplate(parentMsgToAll);
let embeddedLogo = await loadLogo();

template = template.replace(/{{company_image}}/g, data.companyImage);
template = template.replace(/{{company_name}}/g, data.companyName);
template = template.replace(/{{message}}/g, data.message);
template = template.replace(/{{msg_date}}/g, data.msgDate);

mailer.sendMail({
    from: 'abc <support@abc.com>',
    to: data.recipient,
    subject: "You have unread messages from abc",
    html: template,
    attachments: [{
        cid: 'logo.png',
        content: embeddedLogo,
        encoding: 'base64'
    }],
}, (err, info) => {
    if (err) {
        console.log(`Error: ${err}`);
    }
    else {
        console.log("Mailgun Response: " + JSON.stringify(info,null,4));
    }
});
};

Я не вижу этого Ответ Mailgun в Журнал функции firebase, когда есть 100 писем, но когда их мало, он работает нормально, и я вижу Ответ Mailgun в журнале функций firebase.

Пожалуйста, если кто-нибудь решит эту проблему .

...