procmail
[Top] [All Lists]

Re: DNS of return address?

1997-11-03 06:22:10
John Conover writes on 3 November 1997 at 02:58:42
Is is possible, given a reply-to:/from: domain name, to determine if
the domain has a valid InterNIC registration, from within a procmail

not exactly what you've asked for (this does a DNS lookup), but it
should serve as a starting point.  You'll want to perhaps use
something like "whois" instead of "nslookup", although I don't think
that works for the two-letter country TLDs.

   Dan
------------------- message is author's opinion only ------------------
J. Daniel Smith <DanS(_at_)bristol(_dot_)nl>         http://www.bristol.nl/~DanS
Bristol Technology B.V.                   +31 33 450 50 50, ...51 (FAX)
Amersfoort, The Netherlands               {info,jobs}(_at_)bristol(_dot_)com
-----
# be sure the domain is valid.  In addition to this being SLOW, it's
# somewhat risky as DNS timeouts can occur.

# this is how to determine if a domain is invalid.  To disable the
# nslookup, set SPAMCHECK_INVALID_DOMAIN to /bin/false
#SPAMCHECK_INVALID_DOMAIN=/bin/false
SPAMCHECK_INVALID_DOMAIN=${SPAMCHECK_INVALID_DOMAIN:-'/usr/sbin/nslookup 
-query=any $spamcheck_domain 2>&1 | grep -c "Non-existent domain"'}

#spamcheck_domain=`echo $SENDER | awk -F@ '{print $2}'`
:0
* $ SENDER ?? ()${spamcheck_word}(_at_)\/(${spamcheck_word}\.)+${spamcheck_tld}
{ spamcheck_domain=$MATCH }

# assuming no DNS time-outs, a bad domain is a pretty good check
spamcheck_contribution=${SPAMCHECK_INVDOMAIN_SCORE:-$SPAMCHECK_90}
spamcheck_rcpath=$_

:0
* spamcheck_domain ?? .+
* $?$SPAMCHECK_INVALID_DOMAIN
{
  spamcheck_reason="INVDOMAIN - Invalid domain: $spamcheck_domain"
  INCLUDERC=$SPAMCHECK_RCDIR/reason.rc
}
:E
{
  :0
  * $ FROM_ADDRESS ?? 
()${spamcheck_word}(_at_)\/(${spamcheck_word}\.)+${spamcheck_tld}
  { spamcheck_domain=$MATCH }
  :0
  * spamcheck_domain ?? .+
  * $?$SPAMCHECK_INVALID_DOMAIN
  {
    spamcheck_reason="INVDOMAIN - Invalid domain: $spamcheck_domain"
    INCLUDERC=$SPAMCHECK_RCDIR/reason.rc
  }
  :E
  {
    :0
    * $^TO${spamcheck_word}(_at_)\/(${spamcheck_word}\.)+${spamcheck_tld}
    { spamcheck_domain=$MATCH }
    :0
    * spamcheck_domain ?? .+
    * $?$SPAMCHECK_INVALID_DOMAIN
    {
      spamcheck_reason="INVDOMAIN - Invalid domain: $spamcheck_domain"
      INCLUDERC=$SPAMCHECK_RCDIR/reason.rc
    }
  }
}

<Prev in Thread] Current Thread [Next in Thread>