checkpw-pop3 is a checkpassword compatible program that authenticates against a POP3 server.
It is useful when one needs to use SMTP AUTH with an SMTP server that cannot directly access the POP3 server or user account database.
This software is public domain.
Download the checkpw-pop3 package. The latest published checkpw-pop3 package is checkpw-pop3-0.51.tar.gz.
Unpack the checkpw-pop3 package:
tar -xf checkpw-pop3-0.51.tar
Compile the checkpw-pop3 program:
As root, install /usr/local/bin/checkpw-pop3:
There are two optional environment variables that tell checkpw-pop3 the location of the POP3 server to authenticate against:
$HOST is the hostname of the POP3 server. If not specified, it defaults to localhost.
$PORT is the port number of the POP3 server. If not specified, it defaults to 110.
The following tests assume that you have already installed qmail.
You can test checkpw-pop3 without having a POP3 server. In the following example, checkpw-pop3 will connect to localhost on port 2000. Successful authentication will cause the current working directory to be printed:
$ /var/qmail/bin/qmail-popup foo env HOST=localhost PORT=2000 checkpw-pop3 pwd
-ERR authorization failed
The following will simulate a POP3 server on port 2000 that successfully authenticates everything. To cause it to unsuccessfully authenticate everything, change the "+OK" to "-ERR":
tcpserver localhost 2000 /var/qmail/bin/qmail-popup foo echo "+OK"
Of course, the best way to test it is to try authenticating against a real POP3 server with a valid (or invalid) username and password.
Unlike checkpassword, checkpw-pop3 does not make any process state changes before invoking prog.
checkpw-pop3 has been tested with Eric M. Johnston's YAQSAP (Yet Another qmail SMTP AUTH Patch). Change the invocation of qmail-smtpd to use checkpw-pop3, as indicated by the patched man page qmail-smtpd(8):
qmail-smtpd hostname /usr/local/bin/checkpw-pop3 /bin/true
The environment variables controlling checkpw-pop3 must be set before qmail-smtpd is run.