diff --git a/src/mail.js b/src/mail.js index b773b8760..4cb953d5e 100644 --- a/src/mail.js +++ b/src/mail.js @@ -581,13 +581,13 @@ function createMailConfig(mailFqdn, mailDomain, callback) { } // create sections for per-domain configuration - mailDomains.forEach(function (domain) { + async.eachSeries(mailDomains, function (domain, iteratorDone) { const catchAll = domain.catchAll.map(function (c) { return `${c}@${domain.domain}`; }).join(','); const mailFromValidation = domain.mailFromValidation; if (!safe.fs.appendFileSync(path.join(paths.ADDON_CONFIG_DIR, 'mail/mail.ini'), `[${domain.domain}]\ncatch_all=${catchAll}\nmail_from_validation=${mailFromValidation}\n\n`, 'utf8')) { - return callback(new BoxError(BoxError.FS_ERROR, 'Could not create mail var file:' + safe.error.message)); + return iteratorDone(new BoxError(BoxError.FS_ERROR, 'Could not create mail var file:' + safe.error.message)); } const relay = domain.relay; @@ -603,11 +603,13 @@ function createMailConfig(mailFqdn, mailDomain, callback) { if (!safe.fs.appendFileSync(paths.ADDON_CONFIG_DIR + '/mail/smtp_forward.ini', `[${domain.domain}]\nenable_outbound=true\nhost=${host}\nport=${port}\nenable_tls=true\nauth_type=${authType}\nauth_user=${username}\nauth_pass=${password}\n\n`, 'utf8')) { - return callback(new BoxError(BoxError.FS_ERROR, 'Could not create mail var file:' + safe.error.message)); + return iteratorDone(new BoxError(BoxError.FS_ERROR, 'Could not create mail var file:' + safe.error.message)); } - }); + }, function (error) { + if (error) return callback(error); - callback(null, mailInDomains.length !== 0 /* allowInbound */); + callback(null, mailInDomains.length !== 0 /* allowInbound */); + }); }); }