A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Linux

Debian + Postfix + PostfixAdmin + SquirrelMail

Sab

16

Mai

2009


01:19

(19 votos, média 4.53 de 5) 


O problema dos Aliases

Neste ponto temos um pequeno problema relacionado aos aliases. A expansão dos aliases ocorre duas vezes, uma quando a mensagem entra pela porta da frente via um dos daemons smtp e outra quando o amavis devolve a mensagem na porta de reinjeção do Postfix (porta 10025). Desta forma, o endereço é reescrito antes e depois do amavisd-new. Por que isto tem importância? Para cada usuário adicionado via PostfixAdmin existe uma entrada criada na tabela postfix.alias com o seguinte formato:

teste@exemplo.com teste@exemplo.com

Se um encaminhamento (forward) for adicionado através do Squirrelmail ou do PostfixAdmin e se a interface PostfixAdmin for usada escolhendo-se "Deliver to the local mailbox" (entregar na caixa postal local), o registro do alias do usuário vai ficar parecido com:

teste@exemplo.com teste@exemplo.com,numaboa&64;exemplo.net

Neste exemplo, teste@exemplo.com é um usuário real no nosso sistema e a caixa postal numaboa@exemplo.net está hospedada em outro local. Neste caso a mensagem será endereçada tanto para teste@exemplo.com como para numaboa@exemplo.net. Depois que o amavisd-new processa a mensagem, duas mensagens são geradas, uma para cada alias. A mensagem que foi gerada com o endereço teste@exemplo.com é que é o problema. Como a porta de reinjeção 127.0.0.1:10025 é apenas mais um dos daemons smtp (que usa o daemon cleanup para facilitar a reescrita do endereço), o Postfix endereça esta mensagem novamente para ambos. O resultado é que numaboa&64;exemplo.net recebe a mensagem duas vezes (o que não acontece com teste@exemplo.com, que só recebe uma porque a mensagem foi originalmente endereçada a ele).

Quando escrevi este documento pela primeira vez, desabilitei a reescrita de endereços antes do amavisd-new (usei "-o receive_override_options=no_address_mappings" nos daemons smtp interfaceando a Internet). Isto funcionava quando todas as mensagens vinham endereçadas a usuários "reais" (os que possuem caixas postais), mas como ficaria a coisa se você quisesse criar um alias? Alguma coisa do tipo

teste.user@exemplo.com teste@exemplo.com

onde teste@exemplo.com possui uma caixa postal (e está na base de dados do amavis) e teste.user@exemplo.com foi criado pelo admin apenas para redirecionar convenientemente emails para a conta existente. Aí a coisa não funciona direito se os endereços só forem reescritos depois do amavisd-new. O motivo é que teste.user@exemplo.com acaba usando as configurações padrão presentes em amavisd.conf ou 50-user e não as configurações relativas a teste@exemplo.com, ou seja, não usa as configurações que estão na base de dados MySQL. Neste caso, qual seria a solução? Uma das possibilidades seria editar o daemon smtp 127.0.0.1:10025 e alterar este override

-o receive_override_options=no_header_body_checks, no_unknown_recipient_checks

por

-o receive_override_options=no_address_mappings, no_header_body_checks, no_unknown_recipient_checks

mas o problema é que há situações em que não queremos desabilitar completamente a reescrita depois do amavisd-new. Podemos simplesmente querer usar uma tabela de alias virtual diferente. Para isto, vamos adicionar um daemon de cleanup novo que o amavisd-new possa usar e, por enquanto, vamos fazer com que este daemon de cleanup não use uma tabela de alias virtual. Faça um

vi /etc/postfix/master.cf

copie o daemon de cleanup, chame a cópia de amavis-cleanup e adicione um override que desabilita o mapa de alias virtual atual:

cleanup   unix  n       -       -       -       0       cleanup
amavis-cleanup   unix  n       -       -       -       0       cleanup
  -o virtual_alias_maps=hash:/etc/postfix/amavis_virtual
qmgr      fifo  n       -       n       300     1       qmgr

Depois, na porta de reinjeção 127.0.0.1:10025, avise o Postfix para usar este daemon de cleanup novo nos emails que o amavisd-new manda para ele:

127.0.0.1:10025 inet n    -    n    -    -    smtpd
    -o content_filter=
    -o cleanup_service_name=amavis-cleanup
    -o local_recipient_maps=
	<...>

Salve o arquivo e feche o editor. Depois:

/etc/init.d/postfix stop
/etc/init.d/postfix start

Você pode ser mais criativo (se você precisar). Sugiro a leitura de http://www.ijs.si/software/amavisd/README.postfix.html e http://www.ijs.si/software/amavisd/README.postfix.old.

Observação: se o usuário utilizar a interface PostfixAdmin para alterar o(s) alias(es) de encaminhamento e escolher a opção "Forward to given email addresses only" (encaminhar apenas para o endereço indicado) ao invés da opção "Deliver to the local mailbox", o registro no postfix.alias deve estar neste formato:

teste@exemplo.com numaboa@exemplo.net

Neste exemplo, numaboa@exemplo.net ainda é uma caixa postal remota. Lembre-se de que caixas postais remotas não terão seus endereços de email na base de dados amavis do MySQL (a não ser que você os adicione manualmente). Neste caso este tipo de destinatário acaba usando as configurações padrão (estáticas) existentes nos arquivos 50-user ou amavisd.conf.

mfx brokerсковородки нева титан официальный сайталександр лобановский харьковалюминиевый корпусхорошие сковородкиxrayvaz.ru лобановский харьков

Informações adicionais