diff -ru qpsmtpd-0.40/plugins/require_resolvable_fromhost qpsmtpd-0.40.fix/plugins/require_resolvable_fromhost --- qpsmtpd-0.40/plugins/require_resolvable_fromhost 2007-06-14 13:57:24.000000000 -0400 +++ qpsmtpd-0.40.fix/plugins/require_resolvable_fromhost 2008-08-11 16:26:59.000000000 -0400 @@ -53,7 +53,12 @@ $res->udp_timeout(30); my @mx = mx($res, $host); foreach my $mx (@mx) { - return mx_valid($self, $mx->exchange, $host); + # if any MX is valid, then we consider the domain + # resolvable + return 1 if mx_valid($self, $mx->exchange, $host); + # if there are MX records, and we got here, + # then none of them are valid + return 0 if (@mx > 0); } my $query = $res->search($host); if ($query) {