diff --git a/src/cloudron.js b/src/cloudron.js index 4229b8308..63131f29f 100644 --- a/src/cloudron.js +++ b/src/cloudron.js @@ -427,13 +427,10 @@ function addDnsRecords() { // DMARC requires special setup if report email id is in different domain var dmarcRecord = { subdomain: '_dmarc', type: 'TXT', values: [ '"v=DMARC1; p=none; pct=100; rua=mailto:' + DMARC_REPORT_EMAIL + '; ruf=' + DMARC_REPORT_EMAIL + '"' ] }; - var mxRecord = { subdomain: '', type: 'MX', values: [ '10 ' + config.mailFqdn() + '.' ] }; - var records = [ ]; if (config.isCustomDomain()) { records.push(webadminRecord); records.push(dkimRecord); - records.push(mxRecord); } else { // for non-custom domains, we show a nakeddomain.html page var nakedDomainRecord = { subdomain: '', type: 'A', values: [ ip ] }; @@ -442,7 +439,6 @@ function addDnsRecords() { records.push(webadminRecord); records.push(dkimRecord); records.push(dmarcRecord); - records.push(mxRecord); } debug('addDnsRecords: %j', records); diff --git a/src/platform.js b/src/platform.js index f073f076e..6d7ad8b26 100644 --- a/src/platform.js +++ b/src/platform.js @@ -27,6 +27,7 @@ var apps = require('./apps.js'), paths = require('./paths.js'), safe = require('safetydance'), shell = require('./shell.js'), + subdomains = require('./subdomains.js'), util = require('util'), _ = require('underscore'); @@ -258,7 +259,15 @@ function startMail(callback) { shell.execSync('startMail', cmd); - mailboxes.setupAliases(callback); + mailboxes.setupAliases(function (error) { + if (error) return callback(error); + + if (!mailConfig.enabled || process.env.BOX_ENV === 'test') return callback(); + + // Add MX record + var mxRecord = { subdomain: '', type: 'MX', values: [ '10 ' + config.mailFqdn() + '.' ] }; + subdomains.update(mxRecord.subdomain, mxRecord.type, mxRecord.values, callback); + }); }); }); }