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});
}
});
});
});
}