refactor getting mail auth
This commit is contained in:
+5
-17
@@ -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
|
||||
}
|
||||
}));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user