diff --git a/src/views/email.js b/src/views/email.js index 5bd3acad5..5c1945abd 100644 --- a/src/views/email.js +++ b/src/views/email.js @@ -394,7 +394,7 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio Client.getMailUsage($scope.domain.domain, function (error, usage) { if (error) return callback(error); - $scope.mailboxes.mailboxes.forEach(function (m) { m.usage = usage[m.name].size || 0; }); + $scope.mailboxes.mailboxes.forEach(function (m) { m.usage = usage[m.name + '@' + m.domain].size || 0; }); callback(); }); diff --git a/src/views/emails.html b/src/views/emails.html index f5ab982fc..a981978d9 100644 --- a/src/views/emails.html +++ b/src/views/emails.html @@ -55,7 +55,8 @@ - Domain + Domain + Config Actions @@ -68,6 +69,15 @@ {{ domain.domain }} + + + + {{ domain.mailboxCount }} Mailbox(es) / Usage: {{ domain.usage | prettyDiskSize }} + + Outbound only + Disabled + + diff --git a/src/views/emails.js b/src/views/emails.js index b01f94819..8ade2275a 100644 --- a/src/views/emails.js +++ b/src/views/emails.js @@ -102,6 +102,28 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati domain.status = result; domain.statusOk = result.rbl.status && result.relay.status && result.dns.dkim.status && result.dns.dmarc.status && result.dns.mx.status && result.dns.ptr.status && result.dns.spf.status; }); + + Client.getMailConfigForDomain(domain.domain, function (error, mailConfig) { + if (error) return console.error('Failed to fetch mail config for domain', domain.domain, error); + + domain.inbound = mailConfig.enabled; + domain.outbound = mailConfig.relay.provider !== 'noop'; + + // do this even if no outbound since people forget to remove mailboxes + Client.getMailboxes(domain.domain, function (error, mailboxes) { + if (error) return console.error('Failed to fetch mailboxes for domain', domain.domain, error); + + domain.mailboxCount = mailboxes.length; + + Client.getMailUsage(domain.domain, function (error, usage) { + if (error) return console.error('Failed to fetch usage for domain', domain.domain, error); + + domain.usage = 0; + Object.keys(usage).forEach(function (m) { domain.usage += usage[m].size; }); + }); + }); + }); + }); }