[tpop3d-discuss] tpop3d version 1.4.1pre2

Chris Lightfoot chris at ex-parrot.com
Sat, 2 Feb 2002 16:51:24 +0000


    http://www.ex-parrot.com/~chris/tpop3d/tpop3d-1.4.1pre2.tar.gz

This is a prerelease, but it unlikely to be very different
from 1.4.1 when it does come out. There are a number of
changes, including the addition of proper support for
POP-before-SMTP relaying, and some important bug fixes.
Sadly no TLS support yet. (Ben: apologies for not having
sent you an up-to-date snapshot; hopefully this will do.)

So, the change log for 1.4.1 so far:

---
1.4.1

Hooks for POP-before-SMTP relaying support were implemented in tpop3d, and
support for same in TPOP3D::AuthDriver.

The facility as which tpop3d logs messages may now be changed from the
configuration file.

A serious bug in TPOP3D::AuthDriver which affected operation under
auth-other was corrected.

Fixed the behaviour of STAT after DELE.

UIDs in maildir mailboxes are now generated by an MD5 hash of the file name,
fixing a uniqueness problem in previous versions. This means that this version
of tpop3d will display different UIDs by comparison with old versions. See the
comment in the maildir_make_indexpoint function in maildir.c, and also the
archived mailing list posting at
  http://lists.beasts.org/pipermail/tpop3d-discuss/2001-November/000308.html
for more information, or if you want to use the old scheme regardless (not
recommended). In addition, tpop3d now marks messages in maildirs as `seen',
using the `:2,S' filename suffix, rather than just moving them to cur/.

Made logging of failed authentication attempts more informative, following a
suggestion by Jens Liebchen.
---

The notes I have made about POP-before-SMTP relaying are:

---
POP-before-SMTP relaying with tpop3d
$Id: README.POP-before-SMTP,v 1.1 2002/02/02 16:44:23 chris Exp $

First, a caveat: I do not use POP-before-SMTP relaying, and I think that it's
a ghastly hack. However, in the real world, POP-before-SMTP relaying is very
popular, so I've implemented it in tpop3d, for versions 1.4.1 and later.

The basic game is to store the address of clients who are allowed to relay in
some sort of table which can be read by your MTA. When a client connects to
the POP server and authenticates successfully, their address is put into the
table; some other process then cleans old records out of the table after a
short interval. Then, after checking mail with a POP3 client, the user will be
allowed -- for a little while at least -- to relay through the associated SMTP
server.

In tpop3d, POP-before-SMTP relaying is supported via hooks which are called
after a successful login. These hooks are associated with authentication
drivers, but they are called whenever a client is authenticated, regardless
of which authentication driver was used.

Hooks exist in three authentication drivers:

    auth-mysql
        An SQL query specified in auth-mysql-onlogin-query will be executed
        after a login.

    auth-other
        A packet with method `ONLOGIN' will be sent to the authentication
        program after a login.

    auth-perl
        The subroutine specified by auth-perl-onlogin will be called after a
        login.

There is example code for auth-other and auth-perl in scripts/relaydbm.
---

-- 
 `Dolly is unique.' (news article on Dolly the cloned sheep)