At 9AM -0400 on 25/07/13 you (Gene Heskett) wrote:
On Thursday 25 July 2013 08:38:33 Steffen Kaiser did opine:
there might be a misunderstanding here, Dovecot is an IMAP and POP3 server. It ships tools that replicate messages from other Dovecot servers and in limits from other IMAP servers.
If you intend to POP other servers, copy their messages to one local host and view your messages "offline", I would keep fetchmail and Co.
That is the gist of what I have in mind.
Dovecot can I assume, watch the mailfiles in /var/spool/mail?
My present method of using inotifywait wrapped in a bash script to tell kmail to go get the new mail via a dbus message has worked well for years.
But with no previous experience with imap, I haven't a clue how new mail arrival is handled in that sort of a setup.
If a mail client (kmail or anything else which supports IDLE) has a logged-in IMAP session which is sitting in IDLE, Dovecot will watch that user's mailspool and notify the client when new mail arrives.
What it won't do, however, is try to take that new mail out of the spool, filter it, and put it back. If you want Dovecot to filter mail you have to insert it into the delivery chain, before the mail gets to /var/spool/mail. There are two ways of doing this: with dovecot-lda, or with LMTP.
Or when it suits more, maybe imapsync. If you keep that chain any local mailer should be able to pick up the locally spooled messages. Maybe you could switch to Maildir as backend, in order to minimizes locking issues. Of course, you could serve that local mail spool with Dovecot to other IMAP or POP3 clients.
Already "pigeonhole"d or "sieve"d into the usual folder format? Once I get the sorting filter rules re manufactured, that would be great!
It sounds to me like you *just* want dovecot-lda. dovecot-lda is an MDA, that is, a program which does the same job as procmail or maildrop, and it supports Sieve. It also supports sieve extensions which let you run arbitrary programs, so you can run the mail through clamav/whatever.
If you configure Dovecot to keep mail in /var/spool/mail, and to use sieve, and then replace your current call to procmail with an equivalent call to dovecot-lda, I believe this will do what you want. I'm not sure, but I think with Dovecot 2 you will need to run the basic Dovecot daemons in order to make things work, but you can turn off IMAP and POP.
Of course, once you've got delivery working you could then turn IMAP back on, and get rid of that inotifywait hack. At that point there's no good reason to stick to an mbox format mailspool, since the only program which ever touches it is Dovecot, so you can switch to Maildir or dbox instead. However, I would strongly recommend changing only one thing at a time, and making sure the new setup works properly before changing anything else.
You also could fetchmail the remote hosts and inject them into a local Dovecot server via LMTP, you can then try to run clamav and spamd from Sieve and you have the other Sieve-capabilities as well.
LTMP is a new acronym to me. Sorry. Synonymous to an MTA? Effectively replacing procmail with dovecot and sieve but still using spamd and clamav?
You mean MDA. An MTA (Mail Transfer Agent) receives mail by SMTP and either hands it to an MDA or sends it out again by SMTP; an MDA takes mail from an MTA and does local delivery.
LMTP is a protocol for MTAs to talk to MDAs; that is, instead of the MTA invoking the MDA with command-line arguments and passing the message on stdin, it opens a socket (usually Unix-domain) and talks to the MDA on the other end. (The protocol itself is very nearly the same as SMTP, with one rather important difference.)
Using LMTP rather than a command-line MDA means the MDA runs as a daemon, and the MTA has to be configured to use an LMTP client rather than a command for delivery. As far as Dovecot is concerned this is pretty-much the only important difference.
Ben