Aqui, a versão estendida de @ sebix's comment above . Esta solução não testada tirada diretamente do wiki do dovecot 2: exemplos de peneiras Pigeonhole .
Você precisa da extensão subendereço da peneira dovecot para fazê-lo. Coloque em script de peneira. Aqui, o exemplo simples para colocar o email [email protected] na pasta Spam .
require ["fileinto", "envelope", "subaddress"];
if envelope :detail "to" "spam"{
fileinto "Spam";
}
O exemplo mais avançado é usar regex para capturar a extensão de endereço e colocá-la na mesma pasta. Por exemplo, [email protected] será entregue na subpasta A , [email protected] será entregue na subpasta B e assim por diante
require ["variables", "envelope", "fileinto", "subaddress"];
if envelope :is :user "to" "test" {
if envelope :matches :detail "to" "*" {
/* Save name in ${name} in all lowercase except for the first letter.
* Joe, joe, jOe thus all become 'Joe'.
* Of course you can set into all lowercase letter
*/
set :lower :upperfirst "name" "${1}";
}
if string :is "${name}" "" {
/* Default case to INBOX */
fileinto "INBOX";
} else {
fileinto "${name}";
}
}
Para trabalhar com o Postfix, isso requer que o envelope "para" ainda contenha o endereço completo, então passe-o com o sinalizador -a.
Para o conjunto de entrega local
mailbox_command = /usr/lib/dovecot/dovecot-lda -a "$RECIPIENT"
ou para entrega virtual
dovecot unix - n n - - pipe
flags=DRhu user=mail:mail argv=/usr/local/libexec/dovecot/dovecot-lda
-f ${sender} -d ${user}@${nexthop} -a ${recipient}