Scroll to navigation

Mail::Milter::Module::MailDomainDotMX(3pm) User Contributed Perl Documentation Mail::Milter::Module::MailDomainDotMX(3pm)


Mail::Milter::Module::MailDomainDotMX - milter to reject mail whose sender domain publishes a null MX record


    use Mail::Milter::Module::MailDomainDotMX;
    my $milter = new Mail::Milter::Module::MailDomainDotMX;
    my $milter2 = &MailDomainDotMX; # convenience
    $milter2->set_message('Mail from %M domain invalid (has dot-MX record)');


This milter module rejects any mail from a sender's domain (in the MAIL FROM part of the SMTP transaction, not in the From: header) if that domain publishes a "null", or "dot" MX record. Such a record looks like the following in DNS: IN MX 0 .

This lookup requires the Net::DNS module to be installed in order to fetch the MX record.

An extra check as to whether the MX is valid is not (yet) done here. It is currently assumed that the MTA does rudimentary checking for the presence of a valid MX or A record on the sending domain.



Creates a MailDomainDotMX object. There are no arguments to configure this module, as it is a fixed check.


If FLAG is 0 (the default), a DNS lookup which fails the underlying DNS query will cause the milter to return a temporary failure result (SMFIS_TEMPFAIL).

If FLAG is 1, a temporary DNS failure will be treated as if the lookup resulted in an empty record set (SMFIS_CONTINUE).

This method returns a reference to the object itself, allowing this method call to be chained.


Sets the message used when rejecting messages. This string may contain the substring %M, which will be replaced by the matching e-mail address.

This method returns a reference to the object itself, allowing this method call to be chained.


Todd Vierling, <> <>




Hey! The above document had some coding errors, which are explained below:

You can't have =items (as at line 95) unless the first thing after the =over is an =item
2022-06-14 perl v5.34.0