refactor getting mail auth

This commit is contained in:
Girish Ramakrishnan
2019-11-05 19:54:53 -08:00
parent d7b326bf2b
commit b4874ec1f4
3 changed files with 33 additions and 17 deletions
+5 -17
View File
@@ -26,11 +26,10 @@ exports = module.exports = {
var assert = require('assert'),
BoxError = require('./boxerror.js'),
constants = require('./constants.js'),
custom = require('./custom.js'),
debug = require('debug')('box:mailer'),
docker = require('./docker.js').connection,
ejs = require('ejs'),
mail = require('./mail.js'),
nodemailer = require('nodemailer'),
path = require('path'),
safe = require('safetydance'),
@@ -70,26 +69,15 @@ function sendMail(mailOptions, callback) {
return callback();
}
docker.getContainer('mail').inspect(function (error, data) {
mail.getMailAuth(function (error, data) {
if (error) return callback(error);
var mailServerIp = safe.query(data, 'NetworkSettings.Networks.cloudron.IPAddress');
if (!mailServerIp) return callback('Error querying mail server IP');
// extract the relay token for auth
const env = safe.query(data, 'Config.Env', null);
if (!env) return callback(new Error('Error getting mail env'));
const tmp = env.find(function (e) { return e.indexOf('CLOUDRON_RELAY_TOKEN') === 0; });
if (!tmp) return callback(new Error('Error getting CLOUDRON_RELAY_TOKEN env var'));
const relayToken = tmp.slice('CLOUDRON_RELAY_TOKEN'.length + 1); // +1 for the = sign
if (!relayToken) return callback(new Error('Error parsing CLOUDRON_RELAY_TOKEN'));
var transport = nodemailer.createTransport(smtpTransport({
host: mailServerIp,
port: constants.INTERNAL_SMTP_PORT,
host: data.ip,
port: data.port,
auth: {
user: mailOptions.authUser || `no-reply@${settings.adminDomain()}`,
pass: relayToken
pass: data.relayToken
}
}));