TODO: replaced sendmail by nodemailer to allow using a proper & authenticated smtp endpoint.
parent
b9cf8e26d9
commit
a5871a9783
|
@ -13,6 +13,12 @@ var config = {
|
||||||
sslKey: 'certs/retropilot.key',
|
sslKey: 'certs/retropilot.key',
|
||||||
sslCrt: 'certs/retropilot.crt',
|
sslCrt: 'certs/retropilot.crt',
|
||||||
|
|
||||||
|
smtpHost: "localhost",
|
||||||
|
smtpPort: 25,
|
||||||
|
smtpUser: "root",
|
||||||
|
smtpPassword: "",
|
||||||
|
smtpFrom: "no-reply@retropilot.org",
|
||||||
|
|
||||||
baseUrl: 'http://192.168.1.165:3000/', // base url of the retropilot server
|
baseUrl: 'http://192.168.1.165:3000/', // base url of the retropilot server
|
||||||
baseUploadUrl: 'http://192.168.1.165:3000/backend/post_upload', // base url sent to devices for POSTing drives & logs
|
baseUploadUrl: 'http://192.168.1.165:3000/backend/post_upload', // base url sent to devices for POSTing drives & logs
|
||||||
baseDriveDownloadUrl: 'http://192.168.1.165:3000/realdata/', // base download url for drive & log data
|
baseDriveDownloadUrl: 'http://192.168.1.165:3000/realdata/', // base download url for drive & log data
|
||||||
|
|
|
@ -29,8 +29,8 @@
|
||||||
"log4js": "^6.3.0",
|
"log4js": "^6.3.0",
|
||||||
"mocha": "^8.4.0",
|
"mocha": "^8.4.0",
|
||||||
"multer": "^1.4.2",
|
"multer": "^1.4.2",
|
||||||
|
"nodemailer": "^6.6.0",
|
||||||
"proper-lockfile": "^4.1.2",
|
"proper-lockfile": "^4.1.2",
|
||||||
"sendmail": "^1.6.1",
|
|
||||||
"sqlite": "^4.0.22",
|
"sqlite": "^4.0.22",
|
||||||
"sqlite3": "^5.0.2",
|
"sqlite3": "^5.0.2",
|
||||||
"supertest": "^6.1.3"
|
"supertest": "^6.1.3"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
const router = require('express').Router();
|
const router = require('express').Router();
|
||||||
const bodyParser = require('body-parser');
|
const bodyParser = require('body-parser');
|
||||||
const crypto = require('crypto');
|
const crypto = require('crypto');
|
||||||
const sendmail = require('sendmail')({silent: false});
|
const nodemailer = require('nodemailer');
|
||||||
const htmlspecialchars = require('htmlspecialchars');
|
const htmlspecialchars = require('htmlspecialchars');
|
||||||
const dirTree = require("directory-tree");
|
const dirTree = require("directory-tree");
|
||||||
const cookieParser = require('cookie-parser');
|
const cookieParser = require('cookie-parser');
|
||||||
|
@ -107,15 +107,33 @@ router.post('/useradmin/register/token', bodyParser.urlencoded({extended: true})
|
||||||
logger.info("USERADMIN REGISTRATION sending token to " + htmlspecialchars(email.trim()) + ": \"" + token + "\"");
|
logger.info("USERADMIN REGISTRATION sending token to " + htmlspecialchars(email.trim()) + ": \"" + token + "\"");
|
||||||
infoText = 'Please check your inbox (<b>SPAM</b>) for an email with the registration token.<br>If the token was not delivered, please ask the administrator to check the <i>server.log</i> for the token generated for your email.<br><br>';
|
infoText = 'Please check your inbox (<b>SPAM</b>) for an email with the registration token.<br>If the token was not delivered, please ask the administrator to check the <i>server.log</i> for the token generated for your email.<br><br>';
|
||||||
|
|
||||||
sendmail({
|
let transporter = nodemailer.createTransport(
|
||||||
from: 'no-reply@retropilot.com',
|
{
|
||||||
|
host: config.smtpHost,
|
||||||
|
port: config.smtpPort,
|
||||||
|
auth: {
|
||||||
|
user: config.smtpUser,
|
||||||
|
pass: config.smtpPassword
|
||||||
|
},
|
||||||
|
logger: true,
|
||||||
|
debug: false
|
||||||
|
},
|
||||||
|
{from: config.smtpFrom}
|
||||||
|
);
|
||||||
|
|
||||||
|
let message = {
|
||||||
|
from: config.smtpFrom,
|
||||||
to: email.trim(),
|
to: email.trim(),
|
||||||
subject: 'RetroPilot Registration Token',
|
subject: 'RetroPilot Registration Token',
|
||||||
html: 'Your Email Registration Token Is: "' + token + '"',
|
text: 'Your Email Registration Token Is: "' + token + '"'
|
||||||
}, function (err, reply) {
|
};
|
||||||
if (err)
|
|
||||||
logger.error("USERADMIN REGISTRATION - failed to send registration token email " + (err && err.stack) + " " + reply);
|
transporter.sendMail(message, (error, info) => {
|
||||||
|
if (error) {
|
||||||
|
logger.error(error.message);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
} else { // final registration form filled
|
} else { // final registration form filled
|
||||||
if (req.body.token != token) {
|
if (req.body.token != token) {
|
||||||
infoText = 'The registration token you entered was incorrect, please try again.<br><br>';
|
infoText = 'The registration token you entered was incorrect, please try again.<br><br>';
|
||||||
|
|
Loading…
Reference in New Issue