What is it:
  milter filter to check sender address for existense using counter connection.

====== COMPILATION AND INSTALLATION ======

- Provide thread-safe ISC resolver. Place to find it is system-dependent.
For Linux with newer glibc, it contains thread-safe resolver. For FreeBSD,
install bind8 from port; resolver in libc isn't thread-safe.
If you don't know whether your resolver is thread-safe, try to find
res_ninit(). Configure script will find thread-safe resolver or fail.

- Provide Berkeley DB (BDB) implementation with BDB 1.85 interface. All BDB
distributions can be compiled to provide BDB 1.85 interface, but vendors
often compile it without this interface.

- Chdir to source directory.

- Run autoconf. Distribution doesn't contain `configure'.
autoconfs 2.13 and 2.53 were tested.

- Run ./configure.
If your system contains both thread-safe resolver and BDB, but configure
can't get them, mail configure output and config.log to me.

- Manually install verify_sender binary in a place where you want to find it.
As now binary installation contains only one file, no install target is
provided.

====== RUNNING ======

Command line options for verify_sender (main binary):
  -c <path>
    Specify path to config file. See later what is in config file.
  -f
    Don't daemonize.
  -m <path>
    Specify path to external map. (See below)
  -p <sockdef>
    Specify listening socket, according to milter standards.
    Example: -p inet:3330@127.0.0.1

Config file:
sequence of lines:
#... - comment
dorejects [yes|no|on|off|0|1] (default: yes)
bestmxonly [yes|no|on|off|0|1] (default: yes)
tempfail_to_accept [yes|no|on|off|0|1] (default: no)
notnullrev_reject [yes|no|on|off|0|1] (default: yes)
verify_delay [yes|no|on|off|0|1] (default: yes)

dorejects: if yes, rejects on checking results. if no, only adds
X-Verify-Sender: header to letter.

bestmxonly: if yes, chat only with best MXes for domain, otherwise allows
chat with secondary MXes.

tempfail_to_accept: all temporary failures lead to accept.

notnullrev_reject: if yes, 5xx reply to mail from:<> leads to reject for
sender address.

verify_delay: if yes, and dorejects=yes reject will be after rcpt

====== SUPPORT ======

No commercial support is available.
The mailing list exists; to subscribe, mail to majordomo@segfault.kiev.ua
with 'subscribe' in letter body. I do my best to reply ASAP and in
constructive way.
Most discussions in it are in Russian. English is acceptable.

====== MISCELLANEOUS RELEASE NOTES ======

Call it from sendmail.cf using traditional ways to call external filters.
E.g. add to .mc file:
INPUT_MAIL_FILTER(`verify_sender',
`S=inet:3330@127.0.0.1')dnl

External map is used to override actions for specific addresses and domains.
It should be DB file, of DB_HASH format, and preferrably built by usual
`makemap' program from sendmail distribution. Value for each pair is one
digit: '2', '4' or '5', with the same meaning as first digit of SMTP (RFC821)
or DSN (RFC1893) codes: 2 - accept, 4 - temporary reject, 5 - permanent reject.
Possible keys are:
full:<address> - for full mailbox address (localpart@domain),
domain:<address> - for the whole domain.

Full address is looked up first in external map, then checked in cache;
then, domain is checked. If record for domain exists in external map,
no real lookup is made.

Current debug levels are unconfigured and too high. It prints too many
debug info. Redirect it to /dev/null unless it is needed.

Stdio with non-blocking I/O is used. This is tested to work correct on
Torek's stdio (in any BSD libc) and GNU libc stdio, and is required to work
by SUSv3, but can fail on some systems. If you have system outside of this
list and which pretends to conform SUSv3, but has problems with non-blocking
stdio, name it.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 release notes:
5.  ,  ,    DNS TTL'.
7. verify_test   ,   ,  .
       ,   -i, 
 "t <>"   .

    ,     ,  
,   :
1.   -    ,  ,
 ̣ . ,   mail from:<>   
֣   ɣ ,       RFC,
     ISP.      
   1-2   ?
2.      RFC822. ,
  ,   .   ,  
 ,   ...
3.     Berkeley DB   1.85.
    ,    1.85    .

   ,       
 ,   sourceforge ;)
