[EMAIL PROTECTED] writes:
 > Why not break the smtpd into two parts, the way qmail's pop3d
 > separates auth from mail access.  The first part handles everything
 > before DATA, and this can be as simple as a shell or perl script.
 > This is where you can attempt to resolve addresses or do rbl, or
 > check for valid recipient addresses or check recipient or sender
 > quotas or whatever.  There have been many such requests.
 > 
 > The second part queues the message.  Basically it's qmail-queue.

That's an interesting idea, but the difference between POP and SMTP is
that once you exit the POP authentication phase, there's no going
back.  SMTP, on the other hand, needs to keep going.

Perhaps the better solution is to have a parameter to qmail-smtpd,
which gets Bernstein-chained like qmail-popup fork/execs
checkpassword.  This program would work very much like qmail-queue;
might even be a modified qmail-queue, so I'll call it "qmail-queue"
even though it operates differently.  When qmail-smtpd gets a MAIL
FROM: command, "qmail-queue" gets forked and the parameter is written
to it.  "qmail-queue" writes a byte of output which indicates whether
the parameter was acceptable or not.  The following RCPT TO: commands
get written, and a byte read in a similar manner.  When the DATA
command is issued, the terminating null is written down the
qmail-queue control channel, and "qmail-queue" operates as qmail-queue
currently does.

This would be nearly as efficient as the current system.  Sometimes an
extra "qmail-queue" might get spawned and have to be killed.

It would be just as secure as the current system.  The only thing
"qmail-queue" needs to do besides what it currently does is write a
byte every time it reads a sender or recipient.

And, it would completely obviate all the anti-spam patches, since the
qmail-smtpd parameter program would be able to do any and all
filtering, and since it's not a wrapper, it wouldn't get overwritten
whenever ``make setup'' is performed.

Whadda ya say, Dan?

-- 
-russ nelson <[EMAIL PROTECTED]>  http://crynwr.com/~nelson
Crynwr supports Open Source(tm) Software| PGPok |   There is good evidence
521 Pleasant Valley Rd. | +1 315 268 1925 voice |   that freedom is the
Potsdam, NY 13676-3213  | +1 315 268 9201 FAX   |   cause of world peace.

Reply via email to