[Dovecot] Converting from MBOX to Maildir broke procmail and Spamassasin and halted incoming mail

Karsten Bräckelmann guenther at rudersport.de
Mon Sep 29 19:15:39 EEST 2008


On Wed, 2008-09-17 at 12:39 -0600, Dan Roberts wrote:

> I did have success in getting my mail accounts converted from mbox to  
> maildir, but then ran aground.
> 
> I could see all of my existing mail and create new folders, but I  
> could not see any of my incoming mail.
> 
> What I was late in realizing was that I needed to also adjust the  
> settings for my LDA, which as I am using sendmail is procmail, and it  
> was suggested that I needed to adjust /etc/procmail to include the line
> 
> DEFAULT=$HOME/Maildir/
> 
> I did that, but new mail still didn't show up correctly.   I can only  
> assume that I have something still not properly adjusted in my  
> procmail settings.
[...]

> In each users Home directory I have a .procmailrc file that further  
> directs things on a user level.
> For my directory this file is currently
> ---------------
> [dan at trailrunner ~]$ cat .procmailrc
> MAILDIR=$HOME/mail
> 
> PROBABLYJUNK = /home/dan/mail/probably-spam
                           ^^^^^^^^^^^^^^^^^^ ^^
> :O H
> * ^X-Spam-Status:.*Yes
> {
> EXITCODE=67
> :0:
> probably-spam
  ^^^^^^^^^^^^^ ^^

This makes procmail deliver mail into mbox format files. You most likely
want delivery action lines like this:
  .probably-spam/

Note the leading dot and the trailing slash. That makes procmail use
Maildir format. You will have to adjust each and every delivery action.
Please see 'man procmailrc'.

Moreover, your ${PROBABLYJUNK} variable doesn't match your ${DEFAULT}.
You'd better not provide absolute, full paths there.


Given the above snippets, I guess procmail actually *did* deliver your
mail. It's just been dumped in mbox format files, which dovecot with
your changed settings doesn't recognize. And probably scattered in
multiple directories...

  guenther


-- 
char *t="\10pse\0r\0dtu\0. at ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4";
main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1:
(c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}



More information about the dovecot mailing list