postfix alias maildir entregando para ~ user / Maildir / em vez de ~ user / Maildir / alias /

2

Meu ambiente:

# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.6 (Santiago)
# rpm -q postfix
postfix-2.6.6-6.el6_5.i686
# 

Eu mudei home_mailbox de Mailbox para Maildir/ :

# postconf -n | grep home_mailbox
home_mailbox = Maildir/
# 

Estou enviando um e-mail de teste para mim mesmo: [email protected] , mas o e-mail é entregue a [email protected] ; por qualquer motivo, ele ignora meu +A alias.

Meu objetivo é que [email protected] seja entregue a ~test/Maildir/.A/ e não a ~test/Maildir/ .

O que estou fazendo de errado? O que estou perdendo?

    
por alexus 23.06.2015 / 18:19

1 resposta

2

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}
    
por 24.06.2015 / 07:30

Tags