On Fri, 2006-09-01 at 01:30, Feizhou wrote: > > Sendmail chats on sockets with the milter process and thus > > doesn't become any larger. And the milters can be written > > in any language. Mimedefang uses a combination of C and > > perl. If you are going to run spamassassin you are stuck > > with perl regardless and that's going to be your slow step > > anyway so you might as well have it pre-loaded and use it > > as the parser for your control steps. > > Hence why I have spamassassin used to filter after the mail is queued. > Do you make mimedefang run spamassassin on all your mails before queueing? Inbound only, and after the other faster checks (virus, etc.) that might cause rejection are done. The advantage of scanning during the SMTP conversation is that you can still reject with a message that would find its way back to a legitimate sender without having to construct the bounce yourself. > Okay, I get it. lotsa sendmail processes < (one socket per sendmail > process) > single milter process < ? > perl processes Actually you can have multiple milter processes if you want, but MimeDefang handles about everything. Also, sendmail has separate conversations with the milter(s) for each operation which MimeDefang might hand off to different slaves. The side effect is that you don't block on some other long-running process unless you are out of slaves but you also can't count on globals that you set in one step (checking the sender or recipients) to be available in later steps - but MimeDefang passes most of the information you need each time and has dropped a complete copy of the message broken out into its MIME components in files where the programs can find them (hence the name and the advantage of running multiple scanners under its control). -- Les Mikesell lesmikesell at gmail.com