This topic needs a title

Original message <>

has anyone hacked QMail or Sendmail so that it could act as a mail server
without actually having accounts on it?


The idea that I have is that when a user gets mail (ala SMTP connection
coming in), or the user checks mail (ala POP connection coming in), the
mail server (Qmail, Sendmail, whatever) could make an ODBC/SQL call to a
NT Server running MS-SQL (doesn't really matter, as it is a pure ODBC
call). Has anyone done anything like this? Just curious. Thanks in
advance. Pointers would be good also.

We have a modified:

all of which verify accounts against our internal database (same one
which handles Radius queries and which the web/ftp server uses to do
authentication and transfer limit quotas... in our case, a custom-written
database package that keeps local copies of all of the data, and can read
it in a single disk seek, so there's no problems if the network to the
database server is ill)

there's only about a dozen lines of code in each (usually the fastest
solution is to have a routine which accesses the database, and then fills
in a fake passwd struct as would be returned by getpwent)

nice thing is that you can build in things like "allow mail to arrive,
but return special failure code when user connects to pop server" to
deal with "customer exists but hasn't paid for >45 days", and even more
clever... "forward this mail to this other address for 30 days, and then
bounce thereafter"

only hint to be had is that even though it feels like modifying mail.local
should be enough, sendmail ALSO checks to see if the user exists on the
system before asking mail.local to do the delivery, so you need to hack both
of them.

we've investigated making the same hacks to both MMDF and qmail, and these
appear to be equally trivial.

-matthew kaufman