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

Voltar