Aki Tuomi
2021-Jan-18 07:06 UTC
Changing the default delivery mailbox to something other than INBOX
> On 18/01/2021 08:56 Ron Garret <ron at flownet.com> wrote: > > > On Jan 17, 2021, at 10:48 PM, Aki Tuomi <aki.tuomi at open-xchange.com> wrote: > > > Don't touch the INBOX setting (leave it out), use the -m parameter for dovecot-lda. > > I don?t think that will work. My MTA is postfix and it?s connected to dovecot via LMTP, so AFAIK postfix is talking to dovecot over a socket, and dovecot-lda isn?t being invoked so there is no place to pass that the -m parameter. But we are at the limits of my understanding of how all this stuff actually works under the hood so please correct me if I?m wrong here. > > rgAh, you are using LMTP... then the easiest is to use Sieve here. You can use simple global script, e.g. /etc/dovecot/default-mbox.sieve ``` require ["fileinto", "mailbox"]; fileinto "OtherBox"; ``` then sievec the script, and use plugin { sieve_before = /etc/dovecot/default-mbox.sieve } this way it will change the default mailbox, but allows per-user scripts to change it. Aki
Ron Garret
2021-Jan-18 16:05 UTC
Changing the default delivery mailbox to something other than INBOX
On Jan 17, 2021, at 11:06 PM, Aki Tuomi <aki.tuomi at open-xchange.com> wrote:> >> On 18/01/2021 08:56 Ron Garret <ron at flownet.com> wrote: >> >> >> On Jan 17, 2021, at 10:48 PM, Aki Tuomi <aki.tuomi at open-xchange.com> wrote: >> >>> Don't touch the INBOX setting (leave it out), use the -m parameter for dovecot-lda. >> >> I don?t think that will work. My MTA is postfix and it?s connected to dovecot via LMTP, so AFAIK postfix is talking to dovecot over a socket, and dovecot-lda isn?t being invoked so there is no place to pass that the -m parameter. But we are at the limits of my understanding of how all this stuff actually works under the hood so please correct me if I?m wrong here. >> >> rg > > Ah, you are using LMTP... then the easiest is to use Sieve here.I was afraid of that :-( What about just using postfix as the LDA?> You can use simple global script, e.g. /etc/dovecot/default-mbox.sieve > > ``` > require ["fileinto", "mailbox"]; > fileinto "OtherBox"; > ``` > > then sievec the script, and use > > plugin { > sieve_before = /etc/dovecot/default-mbox.sieve > } > > this way it will change the default mailbox, but allows per-user scripts to change it.The problem is that the spam filter needs to put good messages back in INBOX. That would cause an infinite loop (unless sieve has a mechanism to prevent this that I don?t know about). So to prevent this I?d need to make the rule conditional on some header that the spam filter adds before moving the message back. The problem with *that* is that it plays badly with the strategy for training the filter, which is for the user to move false-positive messages from SPAM to INBOX. A user might then also move a good message from OtherBox to INBOX rather than wait for the spam filter to get around to processing it, and then sieve would (presumably) move it right back. So now I need *another* header that *sieve* adds before moving the message to OtherBox and make the rule conditional on *that* header. It all starts to seem very complicated and fragile. rg