Original message <Pine.BSI.3.96.970715210717.373B-100000@duncan.nac.net> From: Alex Rubenstein <alex@nac.net> Date: Jul 15, 21:07 Subject:
has anyone hacked QMail or Sendmail so that it could act as a mail server without actually having accounts on it?
Yes.
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: sendmail mail.local popd 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 matthew@scruz.net