Revista Do Linux
 
  
  
EDIÇÃO DO MÊS
 CD do Mês


 Capa
 Entrevista
 Estudo de Caso
 Serviço Público
 Documentação
 Hardware
 Passo a Passo
 Programação
 Redes
 Ferramenta
 Solução
 Estudo de Caso
 

Como montar seu próprio Webmail

Você vai conferir uma ótima solução de Webmail para sua empresa, provedor ou rede local

O UebiMiau é um Webmail escrito em PHP que descarta a utilização de um banco de dados (como o MySQL ou o PostgreSQL) além do IMAP. Utilizando o browser é possível checar, enviar e receber e-mails, criar um catálogo de endereços, uma assinatura personalizada, enfim, tudo que um Webmail de verdade merece ter.

Possui compatibilidade com o padrão MIME, ou seja, permite enviar e receber e-mails em formato HTML e texto puro. Não utiliza cookies. Sua configuração é bem simples, onde temos liberdade de modificar os parâmetros, de acordo com nossas necessidades, em um único arquivo. Também podemos alterar seu idioma, permitindo inclusive que os usuários façam sua escolha: português (Brasil), inglês, espanhol, entre outros.

Qualquer distribuição com Apache, PHP e Sendmail ou Qmail aceita o UebiMiau. Vamos considerar para este artigo que você já possui um servidor de Correio Eletrônico configurado utilizando o Sendmail, bem como um servidor Web rodando o Apache com PHP4.

Instalação

Adquira o fonte em PHP no CD desta edição ou em www.uebimiau.sili.com.br. Deixe-o no /opt. A partir daqui, continue como root.

Considerando que suas páginas html estão guardadas no /home/httpd/html, crie neste mesmo local o diretório webmail:



[root@servidor html]# mkdir webmail

Entre no diretório webmail e descompacte o arquivo:



[root@servidor html]# cd webmail

[root@servidor webmail]# unzip /opt/uebimiau-latest.zip

Os arquivos e diretórios necessários serão criados.

Configuração

O arquivo config.php é o responsável pelos principais parâmetros de configuração do Webmail. Nele os parâmetros são definidos por 0 e 1 (zeros e uns), onde o zero indica que o parâmetro está desativado e o um indica que está ativado ou habilitado. Confira e modifique de acordo com as necessidades:




$temporary_directory = “/tmp webmail”;

Indica qual será o diretório temporário utilizado pelo Webmail. Neste diretório, que deve estar com permissão 777, serão guardadas as preferências dos usuários, tais como pastas criadas, catálogo de endereços, assinatura e outros.



$smtp_server = “smtp.empresa.com.br”;

Indica qual será o servidor SMTP utilizado. Se o Webmail for utilizado em uma rede local, e o servidor web for o mesmo de correio eletrônico, substitua o nome do servidor por localhost.




$quota_limit = 2048;

O UebiMiau utiliza o sistema de quotas do Linux, que deve estar previamente configurado. Indique o valor em Kb. Como exemplo, 1024Kb corresponde a 1Mb e assim por diante. Se o sistema de quotas não estiver configurado e habilitado em seu Linux, o UebiMiau fará o cálculo quanto ao espaço utilizado, mas não o bloqueio conforme os limites especificados.



$use_password_for_smtp = 0;

Se habilitado, solicita autenticação para enviar e-mails.


$pop3_servers[0][“domain”] = “empresa.com.br”;

$pop3_servers[0][“server”] = “pop.empresa.com.br”;

Estes parâmetros são opcionais. Quando habilitados, definem automaticamente o Domínio e servidor POP3 a ser utilizado (pode ser 1 ou mais, conforme a necessidade). Caso não sejam habilitados, na tela de logon do Webmail será solicitado o nome do servidor POP3.




$default_language = 0;

Utiliza ou não o idioma padrão, que é o inglês. Basta comentar as linhas referentes aos idiomas que não deseja utilizar, deixando apenas o português para ter o Webmail em nosso idioma. Lembre-se de que estamos editando um arquivo em formato php; portanto, inclua duas barras (//) antes das linhas para comentá-las.



$allow_user_change  = 1;

Permite aos usuários escolher o idioma, na tela de logon.



$date_format = “d/m/y h:m”; // d = day, 

m = month, y = year, h = hour, m = minutes

Define o formato da data e hora que aparecerão na tela de Mensagens do Webmail. Acompanhe o comentário no próprio parâmetro e modifique se necessário.



$use_sendmail = 1;

$path_to_sendmail = “/usr/sbin/sendmail”;

Indica se o Sendmail será utilizado ou não por estações Linux ao enviarem e-mails. É necessário indicar também o caminho do Sendmail.


$pop_use_top = 1;

Necessário para corrigir um pequeno transtorno de alguns servidores POP3, que apagam o e-mail automaticamente após o comando “RETR”.




$mime_show_html = 1;

Permite enviar e ler e-mails em formato HTML.



$appversion = “2.1”;
$appname = “UebiMiau”;

Define a versão e o nome do programa que pode ser utilizado como assinatura automática do programa na base de todos os e-mails enviados por ele. Difere das assinaturas criadas pelos usuários, sendo inserido automaticamente após cada e-mail enviado.




$footer = “


________________________________________________

Enviado por $appname $appversion“;

Esta será a assinatura do programa, utilizando os parâmetros indicados acima ($appversion e $appname). Você pode modificá-los à vontade, e até criar novos parâmetros se desejar.



$enable_debug = 0;

Este parâmetro permite fazer um debug a cada operação realizada pelo usuário no Webmail. Utilize apenas como teste ou depuração, pois as mensagens aparecem na tela do usuário.




$idle_timeout = 10;

Define, em minutos, o tempo de inatividade do Webmail. Após expirar, qualquer operação levará automaticamente para tela de login.





$default_sortby = “date”;

$default_sortorder = “DESC”;

Define como serão ordenados os e-mails na tela de Mensagens. No caso, o padrão é por data, do mais recente ao mais antigo (de cima para baixo).



$send_to_trash_default = 1;

Envia automaticamente e-mails apagados para a Lixeira do Webmail. Caso contrário, elimina imediatamente os e-mails apagados.





$st_only_ready_default = 1;

Lê os e-mails sem apagá-los após a leitura. Caso contrário, eles serão apagados após serem abertos.



$save_to_sent_default  = 1;

Ao responder um e-mail, envia uma cópia com o conteúdo original.


$empty_trash_default = 1;

Esvazia a Lixeira do Webmail após o logout.



$sortby_default = “date”;

Organiza os e-mails por data. Pode ser utilizado “attach” para ordenar por anexos, “subject”, por assunto, “fromname”, por quem enviou, e “size”, por tamanho.


$rpp_default = 10;

Define quantos e-mails serão mostrados por página. Aceita múltiplos de 10 até 50.



$add_signature_default = 0;

Permite adicionar a assinatura do usuário, se existir, automaticamente ao e-mail.



$signature_default = “”;

Indica uma assinatura padrão para todos os usuários. Basta especificar o caminho do arquivo (html ou texto puro) entre as aspas.

Depois de modificar o config.php, confira se o Apache está configurado para aceitar páginas em formato PHP. Vá até o diretório /etc/httpd/conf e procure as seguintes linhas no arquivo httpd.conf (se não existirem, crie-as editando o arquivo com o editor de sua preferência):



LoadModule php4_module        modules/libphp4.so

AddModule mod_php4.c



<IfModule mod_php4.c>

  AddType application/x-httpd-php .php

  AddType application/x-httpd-php-source .phps

  php_flag magic_quotes_gpc Off

  Alias “/webmail/” “/home/httpd/html/webmail/”

</IfModule>

Repare que o diretório que guarda o UebiMiau é o /home/httpd/html/webmail e o alias é webmail. Este alias indica que, para acessar o webmail, você deverá digitar no browser algo semelhante a: www.empresa.com.br/webmail

Ainda no httpd.conf localize a seguinte linha e modifique-a como abaixo para que o Apache aceite páginas de índice em formato PHP:



DirectoryIndex index.php index.html

Salve e feche o arquivo. Lembre-se de que o PHP4 deve estar instalado no servidor para que as configurações acima funcionem corretamente. Dê um restart no Apache para validar as mudanças:





/etc/init.d/httpd restart

ou


killall -HUP httpd

Utilizando o Webmail

Para testarmos o Webmail, devemos ter uma conta criada no servidor Sendmail. Caso não exista, crie da seguinte forma (modifique o grupo popusers para mail, conforme sua distribuição):


useradd -G popusers -n -d /dev/null -s /bin/false nome_do_usuario

O usuário será criado sem a possibilidade de fazer logon no console do sistema, mas poderá apenas resgatar e enviar e-mails. Siga este exemplo para manter a segurança do sistema.

Tudo OK, vamos testar o Webmail. A partir de uma estação com acesso ao servidor web, digite no browser: www.empresa.com.br/webmail (Modifique o www pelo nome do servidor e também o domínio utilizado).

Deverá aparecer a tela de login do UebiMiau. Digite o nome e senha do usuário criado para o logon.


[root@servidor webmail]# ls -lh

total 232k

-rw-r—r—  1 root  root    7.2k Sep  6 00:02 addressbook.php

-rw-r—r—  1 root  root    297 Sep  1 13:04 badlogin.php

-rw-r—r—  1 root  root    3.4k Sep  5 23:43 catch.php

-rw-r—r—  1 root  root    4.5k Sep 24 12:41 CHANGELOG.txt

-rw-r—r—  1 root  root    18k Sep 26 14:34 class_mime_decode.php

-rw-r—r—      1 root  root    8.0k Sep 17 14:07 class_pop3_session.php

-rw-r—r—      1 root  root    28k Sep 20 10:42 class_smtp.php

-rw-r—r—      1 root  root    10k Sep 15 11:15 commom_functions.php

-rw-r—r—  1 root  root    5.7k Oct 22 11:19 config.php

-rw-r—r—  1 root  root    1.3k Aug 14 23:09 download.php

-rw-r—r—      1 root  root    435 Sep  1 13:13 error.php

-rw-r—r—  1 root  root    7.3k Sep  7 23:39 folders.php

-rw-r—r—  1 root  root    1.8k Aug 14 15:19 form_generator.php

-rw-r—r—  1 root  root    810 Oct 22 10:36 headers.php

drw-r—r—  2 root  root    4.0k Oct 22 10:24 images

-rw-r—r—  1 root  root    2.5k Sep 10 16:12 index.php

-rw-r—r—  1 root  root    992 Aug 21 09:56 logout.php

-rw-r—r—  1 root  root    12k Sep 26 14:31 msglist.php

-rw-r—r—  1 root  root    14k Sep 15 11:28 newmsg.php

-rw-r—r—      1 root  root    3.4k Aug 15 00:22 preferences.php

-rw-r—r—  1 root  root    721 Sep  5 02:56 quick_address.php

-rw-r—r—      1 root      root    2.0k Sep 12 14:40 README.txt

-rw-r—r—      1 root  root    13k Sep 12 10:07 readmsg.php

-rw-r—r—  1 root  root    6.0k Aug 20 23:58 search.php

-rw-r—r—      1 root  root    4.9k Sep 17 17:28 session_management.php

drwxr-xr-x  2 root  root    4.0k Oct 22 10:24 temporary_files

drw-r—r—      7 root  root    4.0k Oct 17 16:08 themes

-rw-r—r—      1 root  root    1.3k Aug 24 09:30 upload.php



Personalizando

É possível modificar a imagem que vem na tela de logon, trocando para a logomarca da sua empresa, por exemplo. Copie o arquivo /home/httpd/html/webmail/images/logo.gif para logo_backup.gif (backup, claro). Agora, é só modificar o logo.gif em um editor de imagens (como o Gimp). Não altere seu tamanho original, a página está configurada para mantê-lo sempre do lado esquerdo com dimensões pré-definidas.

Colabore

Se você desejar alterar alguma palavra em nosso idioma ou outro qualquer, ou mesmo traduzir o UebiMiau para um idioma ainda não suportado, vá até o diretório /home/httpd/html/webmail/themes. Entre no diretório correspondente ao idioma e modifique os arquivos html conforme a necessidade. Não se esqueça de enviar suas alterações aos desenvolvedores.

Para saber mais

Site oficial do UebiMiau: www.uebimiau.sili.com.br
Site oficial do Apache: www.apache.org
Site oficial do Sendmail: www.sendmail.org
Site oficial do PHP: www.php.net/
Site oficial do LinuxConf: www.solucorp.qc.ca/linuxconf/

Victor Zucarino - vffzbr@yahoo.com.br


A Revista do Linux é editada pela Conectiva S/A
Todos os Direitos Reservados.

Política de Privacidade
Anuncie na Revista do Linux