FreeBSD
MUA (Mail User Agent)
OpenWebmail
Um Webmail é um Mail User Agent, conhecido popularmente como "cliente
de e-mail", com interface Web, o que possibilita que os usuários
trabalhem com seus e-mails através de um navegador. O OpenWebmail foi
desenvolvido na linguagem Perl, a partir o Neomail em sua versão 1.14.
Sua principal característica é trabalhar com pastas de e-mails
grandes com uma utilização eficiente de memória. Além
disso, possui funcionalidades como Disco Web, Calendário com agenda de
compromissos etc. Sua página é www.openwebmail.com.
Para instalar o OpenWebmail é necessário que tenhamos um Servidor Web Apache com suporte a CGI e o Perl na versão 5.005 ou acima. Além disso, serão necessários vários outros pacotes.
O OpenWebmail necessita que o programa suidperl tenha o bit setuid habilitado, então para evitar futuros problemas descomente a seguinte linha no arquivo /etc/defaults/make.conf:
ENABLE_SUIDPERL= true
Procedemos agora a instalação do Perl, através do Ports. Vá até o diretório /usr/ports/lang/perl5 e digite "make install". Após instalada esta versão do Perl, precisamos dizer ao sistema que queremos usá-la ao invés da versão que vem instalada por padrão (que neste caso é a 5.005_03). Para isso, digite o seguinte comando:
# /usr/local/bin/use.perl port
Faça agora o download dos seguintes pacotes:
http://search.cpan.org/CPAN/authors/id/L/LD/LDS/CGI.pm-3.03.tar.gz
http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/MIME-Base64-3.00.tar.gz
http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/libnet-1.17.tar.gz
http://search.cpan.org/CPAN/authors/id/M/MP/MPIOTR/Text-Iconv-1.2.tar.gz
http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/Compress-Zlib-1.32.tar.gz
Coloque-os no diretório /usr/originais, então execute os passos abaixo para instalar os mesmos:
Instalação do CGI.pm-3.03:
# cd /tmp
# tar xzvf /usr/originais/CGI.pm-3.03.tar.gz
# cd CGI.pm-3.03/
# perl Makefile.PL
# make
# make install
Instalação do MIME-Base64:
# cd /tmp
# tar xzvf /usr/originais/MIME-Base64-3.00.tar.gz
# cd MIME-Base64-3.00/
# perl Makefile.PL
# make
# make install
Instalação do libnet:
# cd /tmp
# tar xzvf /usr/originais/libnet-1.17.tar.gz
# cd libnet-1.17/
# perl Makefile.PL
Nesta etapa, responda não quando questionado sobre atualizar (update).
# make
# make install
Instalação do Text-Iconv-1.2:
# cd /tmp
# tar xzvf /usr/originais/Text-Iconv-1.2.tar.gz
# cd Text-Iconv-1.2/
Edite o arquivo Makefile.PL e edite as linhas
'LIBS' => [''], # e.g., '-lm'
e
'INC' => '', # e.g., '-I/usr/include/other'
para ficarem como as seguintes:
'LIBS' => ['-L/usr/local/lib -liconv'], # e.g., '-lm'
e
'INC' => '-I/usr/local/include', # e.g., '-I/usr/include/other'
Após isso, seguimos a seqüência de comandos:
# perl Makefile.PL
# make
# make install
Instalação do Compress-Zlib-1.32:
# cd /tmp
# tar xzvf /usr/originais/Compress-Zlib-1.32.tar.gz
# cd Compress-Zlib-1.32/
# perl Makefile.PL
# make
# make install
Deve ser instalado também o "ispell", programa para correção
ortográfica. Faça a instalação do mesmo via Ports:
# cd /usr/ports/portuguese/ispell-pt_BR
# make install
# cd /usr/local/share/ispell
# mv br.aff Portugues.aff
# mv br.hash Portugues.hash
# mv english.aff Ingles.aff
# mv english.dict Ingles.dict
# mv english.hash Ingles.hash
Deve ser instalado ainda o "Zip", programa compactador. Instale também
via Ports:
# cd /usr/ports/archivers/zip
# make install
Terminada a instalação dos pacotes, delete os diretórios
criados no /tmp durante as etapas anteriores. Então faça o download
da última versão do OpenWebmail. Atualmente é a 2.30, e
pode ser encontrada em http://openwebmail.com/openwebmail/download/openwebmail-2.30.tgz.
Após isso, execute os seguintes comandos:
# cd /usr/local/apache2
# tar xvzBpf /usr/originais/openwebmail-2.30.tgz
# mv data/openwebmail htdocs/
Preste atenção nas barras, é importante
neste comando.
# rmdir data
# chmod 600 htdocs/openwebmail/openwebmail.html
Agora o OpenWebmail está instalado, o próximo passo é
configurá-lo. O arquivo de configuração fica no diretório
/usr/local/apache2/cgi-bin/openwebmail/etc e chama-se openwebmail.conf. Este
arquivo deve conter apenas as configurações que forem diferentes
das contidas em openwebmail.conf.default, que como o próprio nome diz
é o padrão. É interessante ler e ter como referência
o arquivo openwebmail.conf.help, o mesmo possui a descrição de
cada opção.
Segue abaixo o arquivo modelo para a configuração, copie-o no
diretório mencionado acima e altere o que for necessário. Deverá
ser criado o diretório /var/log/openwebmail:
-------------------- Arquivo openwebmail.conf --------------------
# openwebmail.conf
name Webmail Exemplo
domainnames servteste.exemplo.org
ow_cgidir /usr/local/apache2/cgi-bin/openwebmail
ow_htmldir /usr/local/apache2/htdocs/openwebmail
logfile /var/log/openwebmail/openwebmail.log
global_filterbook none
g2b_map none
b2g_map none
lunar_map none
spellcheck_dictionaries Portugues, Ingles
enable_domainselectmenu no
enable_changepwd no
enable_about no
xmailer_has_version no
enable_loadfrombook no
enable_editfrombook no
enable_stationery no
enable_sshterm no
disallowed_pop3servers servteste, servteste.exemplo.org
maxbooksize 128
webdisk_lshidden no
webdisk_allow_symlinkcreate no
webdisk_allow_symlinkout no
webdisk_allow_thumbnail no
<page_footer>
</page_footer>
default_language pt_BR
default_autoreplysubject Essa é uma resposta automática...[Re:
$SUBJECT]
<default_autoreplytext>
Olá,
Eu não estou lendo
meus e-mails por enquanto.
Seu e-mail sobre '$SUBJECT' será lido quando eu voltar.
</default_autoreplytext>
<default_signature>
</default_signature>
default_iconset Cool3D
default_bgurl %ow_htmlurl%/images/backgrounds/Envelope.gif
default_dateformat dd/mm/yyyy
default_msgsperpage 20
default_useminisearchicon no
default_defaultdestination mail-trash
default_smartdestination no
default_usesmileicon no
default_sendbuttonposition
both
default_replywithorigmsg at_end
default_newmailsound None
default_newmailwindowtime 0
default_dictionary Portugues
default_abook_width 500
default_abook_height 400
default_calendar_starthour
0700
default_calendar_endhour 2300
default_calendar_reminderdays 2
default_webdisk_dirnumitems
20
-------------------- Fim do arquivo openwebmail.conf --------------------
Após salvar o arquivo de configuração execute o seguinte comando:
# /usr/local/apache2/cgi-bin/openwebmail/openwebmail-tool.pl --init
Teste o Webmail, acessando o endereço http://servidor/cgi-bin/openwebmail/openwebmail.pl, deverá funcionar normalmente.
Para que seja efetuada a busca de mensagens POP3 e a filtragem de mensagens (caso o usuário tenha habilitado algum destes recursos) e também a verificação dos índices das pastas periodicamente, mesmo sem o usuário logar, adicionamos a seguinte linha ao arquivo /etc/crontab:
0 3 * * * root /usr/local/apache2/cgi-bin/openwebmail/openwebmail-tool.pl -q -a -p -i
Isto fará com que as tarefas sejam executadas todos os dias às 3 horas.
Para que o serviço de notificação via e-mail do calendário funcione corretamente, adicione ainda a seguinte linha ao /etc/crontab:
0 */2 * * * root /usr/local/apache2/cgi-bin/openwebmail/openwebmail-tool.pl
-q -a -n
Normalmente se usa um endereço amigável para o Webmail, como por exemplo http://servidor/mail. Para isso, crie o diretório /usr/local/apache2/htdocs/mail e dentro dele um arquivo index.html, com o seguinte conteúdo:
-------------------- Arquivo index.html --------------------
<html>
<head>
<meta http-equiv="Refresh" content="0;URL=http://servidor/cgi-bin/openwebmail/openwebmail.pl">
</head>
<body onload="window.open('http://servidor/cgi-bin/openwebmail/openwebmail.pl','_top')">
</body>
</html>
-------------------- Fim do arquivo index.html --------------------
Crie ainda um script para fazer a rotação do log do OpenWebmail,
que fica em /var/log/openwebmail/openwebmail.log. Deverá ser criado o
diretório /var/log/openwebmail/oldlog. O script pode ficar em /usr/local/script/:
-------------------- Arquivo rotate_log_openwebmail.sh --------------------
#!/bin/sh
# Define o nome para arquivamento
OLD_LOG=/var/log/openwebmail/oldlog/openwebmail.log.`date +%y%m%d-%H%M%S`
# move o arquivo para o diretorio
de arquivamento
mv /var/log/openwebmail/openwebmail.log `echo $OLD_LOG`
# compacta o arquivado
/usr/bin/gzip $OLD_LOG
# apaga os logs com mais de
um ano
find /var/log/openwebmail/oldlog -mtime +365 -exec rm -f {} \;
-------------------- Fim do arquivo rotate_log_openwebmail.sh --------------------
Edite o arquivo /etc/crontab e adicione as seguinte linha, para executar o
script a cada mês:
0 0 1 * * root /usr/local/script/rotate_log_openwebmail.sh
Atualizado em 03/02/04.
Heini Thomas Geib.
http://www2.unijui.edu.br/~heini