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.
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 | Lê .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.