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).

Imagem
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.

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.

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 2:

Imagem
Figura 2. 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.

Veja mais sobre o James em: