7. O programa dot-forward

O programa dot-forward extende os recursos de encaminhamento do qmail, permitindo-o utilizar os arquivos de forward (.forward) do sendmail, tornando migrações transparentes para os usuários.

7.1. dot-forward

dot-forward [ -nN ] .forward

Se .forward existir, dot-forward encaminha mensagens de entrada de acordo com instruções no padrão sendmail contidas em .forward.

Exemplo 1:

Dentro do arquivo $HOME/.qmail do usuário:

| dot-forward .forward

./Maildir/

Não esqueça de incluir uma linha logo após a instrução dot-forward, informando ao programa qmail-local que a mensagem deve ser entregue na caixa de e-mail do usuário se dot-forward não encontrar o arquivo .forward, caso contrário o usuário local não receberá novas mensagens.

Exemplo 2:

É possível informar vários arquivos de forward:

| dot-forward .forward .forward1 .forward2

./Maildir/

dot-forward vai executar as instruções do primeiro arquivo de forward que existir e contiver instruções, caso contrário, testa cada arquivo até o final da lista.

Normalmente, dot-forward sai com código de erro 99, desta forma qmail-local ignora as próximas instruções contidas no arquivo .qmail.

Se o nome do usuário local estiver listado em .forward ou .forward não existir, dot-forward sai com código de erro 0 (zero) e qmail-local processará o restante das instruções contidas no arquivo .qmail normalmente.

Se dot-forward encontrar algum erro ao tentar ler .forward, sai com código de erro 111, fazendo com que o e-mail volte para a fila; qmail-local tentará entregá-lo novamente mais tarde.

Exemplo 3:

.forward pode conter várias linhas, cada uma contendo vários endereços de e-mail

$ cat .forward

telles, kerne, langona

Joao Dias <joao@dias.com>

Exemplo 4:

Ainda é possível utilizar comandos e comentários dentro de .forward:

$ cat .forward

# Aviso de férias para Telles

telles, “| vacation telles”

dot-forward entregará novos e-mails para telles e em seguida os encaminhará ao programa vacation, juntamente com as variáveis de ambiente $UFLINE, $RPLINE e $DTLINE, utilizando telles como parâmetro do programa.

Para utilizar dot-forward de forma global para todos os usuários, basta modificar o arquivo de inicialização do programa qmail-start (geralmente em /var/qmail/rc) para que fique desta forma:

exec env - PATH="/var/qmail/bin:$PATH" \

qmail-start '|dot-forward .forward

./Maildir' splogger qmail

Opção

Descrição

-n

.forward e imprime em STDOUT as instruções a serem executadas sem executá-las. Útil para executar dot-forward via linha de comando e visualizar como .forward será interpretado.

-N

Lê e encaminha a mensagem (Padrão).

Notas de compatibilidade:

  • dot-forward não suporta métodos “:include:” ou entregas no formato mbox. Utilize o método dot-qmail.

  • dot-forward ignora arquivos .forward vazios.

  • Se dot-forward encontrar um erro temporário no processamento de um arquivo .forward, sai com código de erro 111, fazendo qmail-local processar a mensagem novamente mais tarde. sendmail assume incorretamente que o arquivo não existe.

  • .forward precisa ser legível por dot-forward, que normalmente roda com as permissões do usuário local. sendmail normalmente é executado pelo usuário root e possui acesso total a todos os arquivos.

  • sendmail manipula “” (aspas) e “\” (contra-barras), violando as RFC’s 821 e 822. dot-forward não manipula tais caracteres; endereços do tipo “\joao” são tratados da mesma forma que “joao”.

  • dot-forward permite comentários nos arquivos .forward; versões do sendmail anteriores a V8 não permitem comentários nos arquivos .forward.