Improve the performance of nodemailer with express (Node.JS)

0

Well I created an application in Node.js for sending emails via form, to test site I was using FakeSMTP , and the performance was up to speed, but after I "dockerizei" I realized that the return in the sendmail function is taking more than 5 seconds, I would like suggestions to improve the performance / logic of this call, follow the code below:

module.exports = function(application){
application.get('/formulario_inclusao_noticia', function(req,res){

    var envio = application.controller.eConfig();        

    res.render('form_add_noticia', {key:envio.options.auth.pass} );
});


//envia os dados por email
application.post('/noticias/enviar', function(req,res){

    var noticia = req.body;

    if (noticia.titulo == "" || noticia.noticia == "" ){

        res.redirect('/');                            

        return console.error('campo(s) não preenchido(s) !!!');


    }

    var txtEml = "";
    var txtEmlS = "";   
    var imprEmlS = 0;   

    var connection = application.controller.dbConnection();

    connection.connect(function(err) {
        if(err) {
            return console.error('Nao foi possivel conectar', err);
          }
    });        


    var envio = application.controller.eConfig();   

    if (envio.options.auth.pass != noticia.estaKey ){

        res.redirect('/');  

        return console.error('usuário não autenticado!!!');
        return console.error('esperado:');
        console.log(envio.options.auth.pass);
        return console.error('recebido:');
        console.log(noticia.estaKey);


    }else{

        //console.log(envio);
        console.log("VALIDADO!!!");
    }


    var emailOP = {
        from: envio.options.auth.user , // envio 
        to: "", // recebimento
        cc: "", // recebimento(cópia)
        bcc: "", // recebimento(cópia oculta)
        subject: "",  // assunto
        html: "" // conteúdo
        //attachments  
    };    

    var noticiasModel = application.model.noticiasModel;

    //Importante::: Trocar para noticiasModel.getEmailS para obter todos os Emails !!!       
    noticiasModel.getEmailS(connection, function(error, result){

        for(i = 0; i < result.rows.length; i++){

            txtEml = result.rows[i].email;       

            txtEmlS = txtEmlS + txtEml + ";";

        }            

        emailOP.bcc = txtEmlS; 

        emailOP.subject = noticia.titulo;
        emailOP.html = noticia.noticia;

        //console.log('Email Impresso: ', ++imprEmlS);

        envio.sendMail(emailOP, function(err, info){
        if(err){

            res.redirect('/');  

            //throw err; // verificar erro.    
                   console.log('Erro ao enviar email!!!');
            return console.error(err);

        }else{


            console.log('Email OK');

            res.render("emails",{emails:result});
        }


        });



    });

});

}

    
asked by anonymous 07.05.2018 / 22:30

0 answers