David Woodhouse wrote:
On Sat, 2007-10-13 at 19:46 -0500, Les Mikesell wrote:Running MimeDefang is a good example.RFC3464 MIME bounces were a better example, although I still don't really see the point in them. Probably worth implementing though, just for completeness. A brief look at MimeDefang doesn't seem to show up anything it can do which Exim can't, with its built-in interfaces to SpamAssassin, ClamAV, etc. Did I miss something?
These slides give the whole story but the big things are that you can do anything you want by writing a small amount of perl code, the scanning processes don't run under the same uid as the mailer, and it is very efficient. Most other approaches start a scanner process for each message, wasting a lot of time, or tie it to a mailer process for its entire run, wasting a lot of memory or limiting the number of mailers you can be running.
http://www.mimedefang.org/static/mimedefang-lisa04.pdf?PHPSESSID=5aa480195a2bef83bcc79a537c94808cSendmail runs multiple processes that connect to a milter for each operation needed (slide 16). MimeDefang provides a milter socket and multiplexes the connections to some number of perl processes that do the work (slide 31). So, you don't have to start a process for each run and you can run many more sendmail processes than perl/mimedefang processes since sendmail connects for each operation and mimedefang connects the job to an available, already running process to do the work.
-- Les Mikesell lesmikesell gmail com