Bonjour,
J'ai un site avec un formulaire de contact, en local l'envoi fonctionne mais quand je mets le site en ligne ça ne fonctionne plus.
Le site est sur NodeJS.
Le fichier que je modifie pour la mise en ligne est server.js
Voici les erreurs que je vois dans la console du navigateur quand j'envoi un mail via le formulaire:
XHR POST http://mondomaine.fr/send
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
Je ne sais pas comment voir la console côté serveur, je suis sur cPanel.
Le code de mon fichier serveur.js:
const express = require('express');
const nodemailer = require('nodemailer');
const app = express();
const cors = require('cors');
require('dotenv').config()
app.use(express.json());
app.use(cors());
let transport = nodemailer.createTransport({
host: "monhote",
port: 465,
secure: true,
auth: {
user: 'monadressemail',
pass: 'monmotdepasse',
}
});
transport.verify((err, success) => {
err ? console.log(err) : console.log(`=== Server is ready to take messages: ${success} ===`);
});
app.post('/send', function (req, res) {
let mailOptions = {
from: `${req.body.mailerState.email} <monadressemail>`,
to: 'monadressemail',
subject: `${req.body.mailerState.subject}`,
text: `${req.body.mailerState.message}`,
};
transport.sendMail(mailOptions, function (err, data) {
if (err) {
res.json({ status: 'fail' });
} else {
res.json({ status: 'success' });
}
});
});
/* Configuration locale en commentaire
const port = 3001;
app.listen(port, () => {
console.log(`Server is running on port: ${port}`);
});*/
var http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
var server = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
var message = 'It works!\n',
version = 'NodeJS ' + process.versions.node + '\n',
response = [message, version].join('\n');
res.end(response);
});
server.listen(port, hostname);
Merci