diff --git a/src/views/emails.js b/src/views/emails.js index 4b9a328e1..bad660739 100644 --- a/src/views/emails.js +++ b/src/views/emails.js @@ -100,7 +100,16 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati if (error) return console.error('Failed to fetch mail status for domain', domain.domain, error); 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; + + // those states always exist + domain.statusOk = result.relay.status && result.dns.mx.status; + + // those states only exist if no relay is used + if (typeof result.dns.spf !== 'undefined') domain.statusOk = domain.statusOk && result.dns.spf.status; + if (typeof result.dns.dkim !== 'undefined') domain.statusOk = domain.statusOk && result.dns.dkim.status; + if (typeof result.dns.dmarc !== 'undefined') domain.statusOk = domain.statusOk && result.dns.dmarc.status; + if (typeof result.dns.ptr !== 'undefined') domain.statusOk = domain.statusOk && result.dns.ptr.status; + if (typeof result.rbl.status === 'boolean') domain.statusOk = domain.statusOk && result.rbl.status; }); Client.getMailConfigForDomain(domain.domain, function (error, mailConfig) {