O qmail possui um avançado, versátil e seguro sistema de aliases e forwards, e ainda pode aproveitar-se de mecanismos de aliases/forwards de terceiros, para facilitar migrações.
/var/qmail/alias/.qmail- alias
Aonde alias é o nome do alias que será interpretado pelo qmail.
Normalmente é um arquivo contendo um ou mais endereços de e-mail para os quais as mensagens devem ser redirecionadas.
É importante lembrar que, ~/alias/.qmail-alias só será alcançado caso não exista um usuário local identificado por alias. Isto significa que, se existir um usuário telles e for criado um alias ~alias/.qmail-telles, este alias nunca será alcançado.
Linhas que iniciam com “#” (comentários) são ignoradas.
Ex: criando o alias rodrigo.
# echo telles@domain.net > /var/qmail/alias/.qmail-rodrigo
Isso fará o qmail redirecionar todas as mensagens enviadas a rodrigo para telles@domain.net.
É possível utilizar vários e-mails para redirecionamento de mensagens dentro do arquivo de alias, bastando para isso, que cada e-mail esteja em uma única linha:
# cat /var/qmail/alias/.qmail-galera
telles@tubes.br
cleri@tdk.ft
langona@ls.up
kerne@games.md
alvsan@lnx.pt
Ainda é possível utilizar scripts ou programas dentro dos arquivos .qmail-alias.
Ex:
# echo '| /home/telles/lixo.sh' > /var/qmail/alias/.qmail-spam
Desta forma, todas as mensagens enviadas para spam serão tratadas pelo script /home/telles/lixo.sh, o que provavelmente irá deletar a mensagem com algo do tipo:
#!/bin/bash
cat > /dev/null
exit 99
NOTA: Caso deseje criar aliases que possuam “.” (ponto) no meio do nome (Ex: r.p.telles), substitua “.” por “:” (dois pontos).
Ex:
$ echo telles@tubes.br > /var/qmail/alias/.qmail-r:p:telles
Aonde alias é o nome do alias criado pelo usuário local.
Desta forma, o usuário pode criar seus próprios aliases, sem depender do administrador de sistemas.
Exemplo 1: $HOME da usuária aline.
$ echo joazinho > $HOME/.qmail-encontro
Quando for enviado um e-mail para aline-encontro, qmail redirecionará a mensagem para o usuário joaozinho.
Ainda é possível redirecionar mensagens para caixas de e-mail no formato mbox.
Exemplo 2: $HOME da usuária aline.
$ echo ./Mailbox.encontros > $HOME/.qmail-encontros
Desta forma, todos os e-mails enviados para aline-encontros serão armazenados na caixa de e-mail $HOME/Mailbox.encontros no formato mbox.
Quando uma mensagem para telles-amigos-smith é enviada, qmail-lspawn checa se o usuário telles existe, se existir qmail-local verifica no $HOME do usuário telles, se .qmail-amigos-smith existe, se não existir ou se estiver vazio, checa por qmail-amigos-default e por final .qmail-default; qmail-local seguirá as istruções contidas no primeiro arquivo encontrado que tenha conteúdo diferente de vazio. Se o usuário telles não existir, qmail-lspawn passa o controle da entrega para o usuário alias antes de rejeitar a mensagem.
Quando qmail-local encaminha uma mensagem seguindo instruções contidas em um arquivo $HOME/.qmail-alias (ou $HOME/.qmail-default), sempre verifica a existência de um arquivo do tipo $HOME/.qmail-alias-owner; se o arquivo existir, qmail-local utilizará usuario-alias-owner@dominio como sendo o sender (Return-Path:) da mensagem. Caso contrário, qmail-local mantem o endereço de sender original da mensagem.
Excessão: qmail-local sempre mantem o endereço original de sender se este for vazio ou contiver “#@[]” (mensagens de erro – bounces).
qmail-local também suporta a utilização de sender variável (VERP – Variable Envelope Return Paths). Se $HOME/.qmail-alias-owner e $HOME/.qmail-alias-owner-default existirem, qmail-local utilizará usuario-alias-owner-@dominio-@[] como sender de mensagens encaminhadas. Isto fará com que o recipiente da mensagem - recipiente@host - veja o sender como sendo usuario-alias-owner-recipiente=host@dominio.
O arquivo $HOME/.qmail pode ser utilizado para alterar o método padrão de entrega de mensagens para o usuário.
Se $HOME/.qmail estiver completamente vazio ou não existir, qmail-local utilizará o método padrão definido pelo administrador do sistema em qmail-start (defaultdelivery); normalmente o método padrão é mbox e todas as mensagens serão adicionadas ao arquivo $HOME/Mailbox neste padrão.
$HOME/.qmail pode conter espaços em branco e tabs no final de cada linha; Linhas em branco são permitidas, desde que não sejam a primeira linha do arquivo.
Se $HOME/.qmail for executável (possuir o bit de execução – x – ligado) e contiver qualquer linha de programa, instruções de Mailbox ou Maildir, qmail-local suspende a entrega e devolve a mensagem à fila de e-mails.
Exemplo 3: $HOME do usuário telles.
$ echo './Maildir/' > $HOME/.qmail
É importante lembrar que, será necessário criar o diretório Maildir e sua estrutura, utilizando o programa maildirmake.
Ainda é possível utilizar scripts e/ou programas dentro dos arquivos dot-qmail.
Exemplo 4: $HOME do usuário telles.
$ cat $HOME/.qmail
# Programa para filtragem de lixo
|./lixo.sh
&telles@tubes.sp
./Maildir/
No exemplo acima, todas as mensagens enviadas para o usuário telles, serão submetidas ao programa lixo.sh e se passarem desta etapa, serão encaminhadas ao e-mail telles@tubes.sp e entregues no Maildir do usuário.
Se .qmail possuir permissões de leitura para todos usuários ou grupos do sistema, ou se o diretório $HOME do usuário possuir a flag sticky ligada, qmail-local suspende a entrega e devolve a mensagem à fila de e-mails.
A utilização da flag sticky (chmod +t $HOME) deve ser utilizada para manutenção e edição do arquivo .qmail com segurança, fazendo com que novas mensagens que alcancem a caixa de correio do usuário, voltem para a fila e sejam entregues mais tarde, quando a flag sticky não estiver mais setada (chmod -t $HOME) .
Exemplo 5:
$ chmod +t $HOME
$ /var/qmail/bin/qmail-local -n $USER ~ $USER '' '' '' '' ./Maildir/
Warning: home directory is sticky.
maildir ./Maildir/
did 1+0+0
$ chmod -t $HOME
$ /var/qmail/bin/qmail-local -n $USER ~ $USER '' '' '' '' ./Maildir/
maildir ./Maildir/
did 1+0+0
É possível criar uma tabela de usuários do qmail associada a usuários do sistema.
Este sistema utiliza os arquivos assign e cdb que estão localizados no diretório /var/qmail/users e é muito similar aos sistemas de aliases já mencionados, com a diferença de utilizar métodos e programas diferentes para a mesma tarefa.
O arquivo assign contem os mapeamentos de usuários qmail para usuários do sistema, um em cada linha; cdb, é um arquivo binário gerado pelo programa qmail-newu a partir de assign.
assign possui o formato:
=endereço:usuário:uid:gid:diretório:traço:alias:
Ainda é possível utilizar o sinal “+” (adição) como curinga no lugar de “=” (igual), que fará o qmail localizar endereço no início do endereço de recipiente.
Ex:
# cat /var/qmail/users/assign
=telles:rodrigo:500:500:/home/rodrigo:::
+news-:rodrigo:500:500:/home/rodrigo:-::
.
# /var/qmail/bin/qmail-newu
E-mails enviados para telles serão entregues para o usuário rodrigo e e-mails enviados para qualquer endereço que comece com “news-” também serão entregues ao usuário rodrigo.
Desta forma, um e-mail enviado para news-unix será tratado por /home/rodrigo/.qmail-unix.
NOTA: A última linha do arquivo assign sempre deve ser um único “.” (ponto).
Entrega local:
![]() |