diff --git a/modoboa/admin/constants.py b/modoboa/admin/constants.py index 45704b6d7..944da5e2f 100644 --- a/modoboa/admin/constants.py +++ b/modoboa/admin/constants.py @@ -80,3 +80,12 @@ DNSBL_PROVIDERS = [ "zen.spamhaus.org", "zombie.dnsbl.sorbs.net", ] + +# Do not run tests for these domains. +# https://en.wikipedia.org/wiki/Top-level_domain#Reserved_domains +RESERVED_TLD = [ + "example", + "invalid", + "localhost", + "test" +] diff --git a/modoboa/admin/management/commands/subcommands/_mx.py b/modoboa/admin/management/commands/subcommands/_mx.py index 13c8bfb77..0528f3e12 100644 --- a/modoboa/admin/management/commands/subcommands/_mx.py +++ b/modoboa/admin/management/commands/subcommands/_mx.py @@ -257,4 +257,6 @@ class CheckMXRecords(BaseCommand): options.pop("domain") for domain in domains: + if domain.uses_a_reserved_tld: + continue self.check_domain(domain, **options) diff --git a/modoboa/admin/models/domain.py b/modoboa/admin/models/domain.py index 4094b73ef..290759d32 100644 --- a/modoboa/admin/models/domain.py +++ b/modoboa/admin/models/domain.py @@ -20,6 +20,7 @@ from modoboa.parameters import tools as param_tools from .. import signals from .base import AdminObject +from .. import constants class DomainManager(Manager): @@ -108,6 +109,12 @@ class Domain(AdminObject): def aliases(self): return self.domainalias_set + @property + def uses_a_reserved_tld(self): + """Does this domain use a reserved TLD.""" + tld = self.name.split(".", 1)[-1] + return tld in constants.RESERVED_TLD + @property def just_created(self): """Return true if the domain was created in the latest 24h.""" diff --git a/modoboa/admin/templates/admin/domains_table.html b/modoboa/admin/templates/admin/domains_table.html index 0b3e24e9d..5fee00aae 100644 --- a/modoboa/admin/templates/admin/domains_table.html +++ b/modoboa/admin/templates/admin/domains_table.html @@ -8,7 +8,9 @@ {% if enable_mx_checks or enable_dnsbl_checks %}