Introdução ao Java Apache Mail Enterprise Server (James)

 

Neste artigo, eu mostrarei para você como o Java Apache Mail Enterprise Server (James) pode ser utilizado para sua solução de Enterprise Mail Server.

 

Obtendo o James and Meeting Prereqs

Este artigo foi escrito utilizando a versão 2.1.3 do James. Para executar esta versão, você precisa ter JRE 1.4 instalado (download James). Assumo que você está usando o James dentro de um ambiente Windows. Porém, como o James é desenvolvido em Java, sendo possível executa-lo em qualquer plataforma.

 

Abrindo portas

Para usar o James como seu servidor de correio, você precisa abrir algumas portas TCP. Por padrão, o SMTP utilizad a porta 25. Uma outra porta deve ser aberta para o protocolo de POP3 (por padrão, a porta 110). Como você verá depois neste artigo, você também pode administrar remotamente o James usando o Serviço de Gerência Remoto (a porta padrão para este serviço, é a porta 4555).

 

Executando o James

Para executar o James, tenha certeza que a variável de ambiente JAVA_HOME aponta para o JRE 1.4. Então execute o script run.bat do diretório onde você extraiu o James. Quando você fizer isto, você verá a seguinte tela (Figura 1).

 

james1.JPG 

Figura 1 – Executando o James


Quando você executar o James pela primeira vez, são criados arquivos de configuração para você. Neste momento, você tem que parar o servidor para modificar os arquivos de configuração para conseguir algumas funcionalidades de James.


Você precisa ensinar para o James a respeitar o domínio para o qual você está tentando configurar o e-mail. Para fazer isto, você precisa modificar a seção do arquivo de config.xml (localizado em < james-installdir>\apps\james\SAR-INF diretório) como segue:

 

            

      

      localhost

      

 

Você precisa adicionar o DNS namespace para o correio o qual James controlará. Por exemplo, suponha que você quer controlar correio bogusdomain.com. A sintaxe seria a seguinte:

 

      

         

         localhost

         bogusdomain.com

      

 

Mostrando a James quem manda

 

Você pode administrar o James através de seu Serviço de Gerência Remota (por definição, este serviço escuta na porta 4555). A sintaxe seguinte pode ser usada para administrar o James:

 

      telnet localhost 4555

 

Se você estiver acessando o James remotamente, simplesmente substitua localhost com o endereço/hostname de IP apropriado.

O login padrão e a senha para o Serviço de Gerência Remoto são root e root, respectivamente. (Você pode alterar esses dados no arquivo config.xml.) Procure a seção < administrator_accounts > e modifique a seção com um nome de usuário seguro e uma senha.

O James possui um help e para acessa-lo, basta digitar o comando HELP.

Podem ser acrescentados os usuários ao James através da seguinte sintaxe:

 

      adduser [username] [password]

 

Por exemplo, adicionando o usuário devmedia:

 

adduser devmedia minh453nha

 

Trabalhando com o James

Depois de adicionar um usuário, você pode testar coisas criando uma conta com seu software agente de correio favorito (por exemplo, Lotus Notes, Microsoft Outlook, e assim por diante). Para saber como criar uma conta de correio, você deve consultar a documentação de seu produto. Depois de criar a conta, envie um e-mail de teste à conta que você criou; se tudo ocorrer corretamente, você deverá ver um e-mail em sua caixa, como apresentado na Figura 2.

james2.JPG
Figura 2 – Mostrando a caixa de entrada com a mensagem teste
 

Mailets and Matchers

Embora o James seja um servidor de correio, também é um recipiente de mailet. Parecido com o modo J2EE dão poder a Empreendimento Feijões de Java, o James dá poder a mailets. (São usados Mailets para processar correio, e são usados matchers para emparelhar mensagens de correio contra certas condições.) James transporta com vários matchers de predefined e mailets.

Os conceitos podem ser exibidos de uma forma melhor através de exemplos. Digamos que você quer acrescentar o footer de mensagem seguinte a cada e-mail que recebeu por James:

 

      ------------------------------------------------

      Brought to you courtesy of Apache James

 

Você pode usar o mailet de AddFooter e o "All" matcher para adicionar o footer. Acrescente o seguinte código a seu arquivo de config.xml:

      

         

            ------------------------------------------------

            Brought to you courtesy of Apache James

         

      

 

Depois de reiniciar o James, todo o correio enviado a qualquer endereço de e-mail que o James está sendo anfitrião terá o footer adicionado ao fim do e-mail, como mostrado na Figura 3:

 

james3.JPG
Figura 3 - O footer é adicionado dinamicamente no e-mail

 

Listas de clientes

 

James tem apoio à manipulação de listas de clientes, e os usuários podem subscrever e podem cancelar a assinatura destas listas.

Para criar uma lista, você tem que acrescentar o seguinte código ao arquivo de config.xml no bloco de processador root e sobre o bloco de mailet final:

 

      CommandForListserv=james@bogusdomain.com"

          class="AvalonListservManager">

          list-james

      

 

Com o mailet abaixo, se um remetente envia uma mensagem para james-on@bogusdomain.com, o remetente entrou da lista. Da mesma forma, se ele ou ela enviam uma mensagem para
james-off@bogusdomain.com, ele ou ela cancela a assinatura.

Os integrantes da lista são armazenados em um repositório que pode ser seu sistema de arquivo ou um banco de dados. O código seguinte é um exemplo da sintaxe que é necessária para definir o repositório como sendo seu sistema de arquivo:

 

      

          class="org.apache.james.userrepository.UsersFileRepository">

          file://repo/"/>

      

 

Para controlar o correio, você tem que ter também o seguinte mailet no arquivo config.xml:

 

      RecipientIs=james@bogusdomain.com" class="AvalonListserv">

          false

          true

          true

          list-james

          JamesList

      

 

Com este mailet, se você enviar uma mensagem a james@bogusdomain.com, todos os integrantes da lista receberão a mensagen.

 

É possível rodar o James como um serviço do Windows?

Infelizmente, James não executa como um serviço do Windows NT/XP. Porém, você pode usar uma alternativa como o JavaService para poder rodar o James como um serviço.

Poder e possibilidade de crescimento

O Apache Software Foundation lhe permite criar seus próprios mailets e matchers. Você pode aprender como criar seus próprios mailets e matchers através da documentação do James.


Conclusão

James é um projeto open source da Apache Software Foundation. Versões futuras prometem capacidade de trabalhar com IMAP que é tipicamente uma escolha de um maior empreendimento. O James tem muito mais para oferecer que o que eu realcei neste artigo introdutório. Você pode aprender mais sobre o projeto pela documentação(http://james.apache.org/documentation_2_1.html) do projeto.

Veja mais sobre o James em: