diff --git a/src/database.js b/src/database.js index eabb99702..f8f2be083 100644 --- a/src/database.js +++ b/src/database.js @@ -105,6 +105,7 @@ function clear(callback) { child_process.exec.bind(null, cmd), require('./clientdb.js')._addDefaultClients, require('./domaindb.js')._addDefaultDomain, + require('./maildb.js')._addDefaultDomain, require('./groupdb.js')._addDefaultGroups ], callback); } diff --git a/src/mail.js b/src/mail.js index 24f7dd771..d5e7bec54 100644 --- a/src/mail.js +++ b/src/mail.js @@ -786,7 +786,7 @@ function setMailEnabled(domain, enabled, callback) { restartMail(NOOP_CALLBACK); - if (!enabled || process.env.BOX_ENV === 'test') return callback(); + if (!enabled || process.env.BOX_ENV === 'test') return callback(null); // Add MX and DMARC record. Note that DMARC policy depends on DKIM signing and thus works // only if we use our internal mail server. diff --git a/src/maildb.js b/src/maildb.js index 2b7685a6d..a78237e67 100644 --- a/src/maildb.js +++ b/src/maildb.js @@ -8,6 +8,7 @@ exports = module.exports = { update: update, _clear: clear, + _addDefaultDomain: addDefaultDomain, TYPE_USER: 'user', TYPE_APP: 'app', @@ -15,6 +16,7 @@ exports = module.exports = { }; var assert = require('assert'), + config = require('./config.js'), database = require('./database.js'), DatabaseError = require('./databaseerror.js'), safe = require('safetydance'); @@ -120,3 +122,12 @@ function update(domain, data, callback) { callback(null); }); } + +function addDefaultDomain(callback) { + assert(config.fqdn(), 'no fqdn set in config, cannot continue'); + + add(config.fqdn(), function (error) { + if (error && error.reason !== DatabaseError.ALREADY_EXISTS) return callback(error); + callback(); + }); +}