Re: Parallelizing fetchmail
On Sun, 2006-05-21 at 18:52 +0200, Daniele Cortesi wrote:
> Hello *,
> I recently uninstalled exim on my home pc, replacing it with esmtp
> for outbound mail and fetchmail->procmail for inbound traffic.
> Procmail checks every message for spam and viruses, introducing some
> seconds of latency, mainly because of DNSRBL checks of spamc.
> The disadvantage of this is that fetchmail launches only one procmail
> for each message and waits for it termination. This leads to a very long
> delay when downloading many messages.
> I can parallely check more than one message with spamd (making it create
> more childs) but I cannot find a configuration that will speed up with
> more spamd-child. The bottleneck is always fetchmail that process every
> message one by one.
> Have you got any ideas about how to insert a queue in the chain?
> I can replace procmail with maildrop or similar if necessary. Please
> avoid solutions like "re-install exim" or "install <insert your
> favourite mta here>".
Sorry if this sounds like "install ...", but I've found MailScanner to
be helpful for accomplishing this. From 'man MailScanner':
The main process then spawns n number of child processes. n is
configured in [configfile] with the option "Max Children". Each process
waits for messages to appear in the "Incoming Queue Dir", processes
these messages and then puts them in the "Outgoing Queue Dir". You
may need to adjust the configuration of your MTA (or the startup of your
MTA) to make it work with MailScanner.
It is important that your MTA only queues incoming mail and does not
deliver it automatically. You need two mail queues (incoming and
outgoing). Moreover you should setup two instances of your MTA. One that
accepts incoming mail and puts it to an incoming queue and one that
sends out mail that resides in the outgoing queue.
You can configure it to use one of a number of virus/spam scanners.