I've a problem with node and Node Mailer. When i send an email from localhost everything works. But when I deploy my project on my vps there are an error 404.If I change url request by /index Ajax return status 200 OK. I utilise BodyParser, Nodemailer.
Back:
app.post(' /send-mail ', (req, res) => {
mail = ({name : req.body.formName , email: req.body.formMail, message: req.body.formMessage})
console.log(mail);
//res.redirect('/index')
// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
host: "smtp.gmail.com",
port: 465,//also possible on port:25 for gmail but I'm prefer 465
secure: true, // true for 465, false for other ports
auth: {
user: 'xxx@gmail.com', // generated ethereal user
pass: ' xxx ' // generated ethereal password
}
});
// send mail with defined transport object
let mailOptions = ({
from: req.body.mail, // sender address
to: "xxx@gmail.com", // list of receivers
subject: `Vous avez reçu un e-mail de la part de ${req.body.name}`, // Subject line
text: req.body.message, // plain text body
html:
`<h3>Voici le message que vous avez reçu de ${req.body.name}</h3></br>
<h4>E-mail : ${req.body.mail}</h4></br>
<h4>Le message: </h4></br>
<p>${req.body.message}</p>`// html body
});
transporter.sendMail(mailOptions, (err, info) => {
if (err) {
return console.log(err, mailOptions);
}
console.log('Message %s sent: %s', info.messageId, info.response , info.rejected);
res.render('index');
})
transporter.close();
});
Front:
function addContactUsingXHR() {
formData = {
name : formName.val(),
mail : formMail.val(),
message : formMessage.val()
};
$.ajax({
type : 'POST',
url: " /sendMail ",
data: formData,
success: function() { //Return repsponse
console.log(formData);
form[0].reset(); //hide value form
}
});
}
I don't understant!!!