Informática Numaboa - Linux
Slackware + Postfix + Maildir
Sab 18 Mar 2006 19:17 |
- Detalhes
- Categoria: Como fazer instalações
- Atualização: Quinta, 03 Abril 2008 13:51
- Autor: vovó Vicki
- Acessos: 14156
Dando continuidade ao meu plano de fazer "picadinho" do tutorial do Postfix, este pequeno how-to vai ensinar como trocar o padrão Unix formato mailbox pelo padrão Unix formato Maildir. E qual é a vantagem que Maria leva? Bããão... pra falar a verdade, é muito simples: ao invés do usuário ter um arquivo imenso com todos os emails, o bacaninha vai ter um diretório particular e cada email terá um arquivinho próprio :cool2:
Introdução
O mínimo que você precisa para acompanhar este tutorial é de uma máquina com sistema operacional Linux - distribuição Slackware, que o DNS (Bind) esteja funcionando perfeitamente e que você tenha apenas uma instalação básica do Postfix devidamente testada. Todos estes passos possuem tutoriais próprios na seção O caminho das pedras da Informática Numaboa.
Para alterar o formato de entrega de mensagens de mailbox para Maildir não é necessário qualquer software adicional - tudo se resume em alguns ajustes de configuração do sistema existente.
Ativando o formato Maildir
Um dos principais arquivos de configuração do Postfix é o /etc/postfix/main.cf. Neste arquivo ficam dois parâmetros que determinam o formato da entrega dos emails, o home_mailbox e o mail_spool_directory.
O parâmetro mail_spool_directory indica o diretório onde todos os emails recebidos devem ser armazenados. O valor default deste parâmetro é /var/mail. Só para conferir, verifique o valor default com:
# postconf -d mail_spool_directory mail_spool_directory = /var/mail
O valor default do parâmetro home_mailbox é vazio, o que faz o Postfix funcionar com entregas formato mailbox colocando todos os emails no diretório indicado pelo parâmetro mail_spool_directory. Verifique também o valor default deste parâmetro:
# postconf -d home_mailbox home_mailbox =
Para fazer com que o Postfix faça entregas Maildir, basta ajustar estes dois parâmetros:
# postconf -e home_mailbox=Maildir/ # postconf -e mail_spool_directory=/home/postfix
Há duas coisas importantes nesta configuração. A primeira é não esquecer da barra após o Maildir/ e, a segunda, é que se houver espaços antes ou depois do sinal =, o postconf estrila com uma mensagem de erro. Depois disso, como o seguro morreu de velho, confira o resultado:
# postconf home_mailbox home_mailbox = Maildir/ # postconf mail_spool_directory mail_spool_directory = /home/postfix
Atualizando o Postfix
Você já deve estar cansado de ouvir que, depois de alterar algum parâmetro de configuração, o Postfix PRECISA ser atualizado. A minha insistência em repetir isto é porque já perdi muitas horas e cheguei a fritar os miolos porque não conseguia os resultados desejados porque... esqueci de fazer um reload. O pior não é isto. De tempos em tempos o Postfix resolve dar uma atualizada por conta própria e uma coisa que simplesmente não queria funcionar começa a dar certo como num passe de mágica... e não tem coisa pior do que um comportamento que não sabemos explicar :crazy:
# postfix reload
Testando o Maildir
Para poder testar o formato Maildir precisamos de um usuário de teste. Depois disso podemos enviar mensagens locais e através de clientes remotos. Se tudo der certo, então podemos dizer que temos um sistema Postfix formato Unix Maildir.
Criando um usuário de teste
Já que é um usuário de teste, seu nome será teste e sua senha será teste. Como já indicamos que o diretório raiz das entregas de email deve ser /home/postfix/, o diretório do usuário teste precisa ser /home/postfix/teste.
# useradd -d /home/postfix/teste -s /bin/false -p teste -m teste
A opção -d indica o diretório home do usuário, -s indica o shell do usuário, -p diz que a senha é teste e -m cria o diretório se ele não existir. Está tudo com cara de certinho, só que recebemos uma mensagem de erro informando que não foi possível criar o diretório. É que o useradd cria apenas o diretório do usuário e, como não encontrou /home/postfix/, não pode fazer o que solicitamos. Como é só isto, fica fácil sair do impasse criando os diretórios faltantes e repetir o useradd:
# mkdir /home/postfix # useradd -d /home/postfix/teste -s /bin/false -m teste
Confira se os diretórios foram criados corretamente:
# cd /home/postfix # ls -l drwx--x--x 3 teste users 104 2006-02-11 23:26 teste/ # cd teste # ls
Observe que o diretório teste está vazio.
Testando a entrega local
Podemos usar o utilitário mailto ou um telnet na porta 25 para testar uma entrega local e verificar o que acontece com a mensagem enviada. O exemplo a seguir usa o mailto (Só para relembrar: para encerrar o texto e enviar o email, use Ctrl-D):
# mailto To: teste Subject: Teste de Maildir Teste de entrega usando Maildir OK
Veja o que aconteceu com a árvore de diretórios:
/home -- |-- postfix -- |-- teste -- |-- Maildir -- |-- cur |-- new |-- tmp
O email que acabamos de enviar está no diretório new. Para ler o email faça o seguinte:
# cd /home/postfix/teste/new # ls 1139704658.V304I9M184074.ns2 # cat 1139704658.V304I9M184074.ns2 Return-Path: < O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo. > X-Original-To: teste Delivered-To: O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo. Received: by mail.numaboa.com.br (Postfix, from userid 0) id D34241C673; Sat, 11 Feb 2006 23:26:30 -0300 (BRT) MIME-Version: 1.0 To: O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo. Subject: Teste de Maildir Message-ID: <0_12709_1142871690_1@ns2> Content-ID: <0_12709_1142871690_2@ns2> Content-type: text/plain Date: Sat, 11 Feb 2006 23:26:30 -0300 (BRT) From: O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo. Teste de entrega usando Maildir OK
Testando com um cliente remoto
Se você possui uma conta de email num provedor qualquer, poderá usar a conexão SMTP desta conta para enviar uma mensagem para o usuário teste. Abra seu cliente (espero que não seja o outlook :afraid: ) e envie um email qualquer para o endereço O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo. . Se tudo estiver em riba, a mensagem deve chegar sem problemas no diretório /home/postfix/teste/new.
Finalmentes
Com esta configuração, os diretórios Maildir serão criados toda vez que novos usuários receberem o primeiro email. E isso é tudo. O tutorial é curtinho, mas é mais um passo na direção de um sistema Postfix completo. Como se diz em italiano, chi va piano va sano e va lontano