É possível ativar seus aplicativos do Java™ Platform, Enterprise Edition (Java EE)
para utilizar os recursos de correio com a API do JavaMail.
Antes de Iniciar
Usando a API JavaMail, um segmento de código pode ser integrado em qualquer
componente do aplicativo Java EE,
como um aplicativo Enterprise JavaBeans (EJB) ou um servlet, permitindo que o
aplicativo envie uma mensagem e salve uma cópia do correio na pasta Enviados.
A seguir há
uma amostra do código que você poderia integrar a um aplicativo Java EE:
javax.naming.InitialContext ctx = new javax.naming.InitialContext();
javax.mail.Session mail_session = (javax.mail.Session) ctx.lookup("java:comp/env/mail/MailSession3");
MimeMessage msg = new MimeMessage(mail_session);
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("bob@coldmail.net"));
msg.setFrom(new InternetAddress("alice@mail.eedge.com"));
msg.setSubject("Important message from eEdge.com");
msg.setText(msg_text);
Transport.send(msg);
Store store = mail_session.getStore();
store.connect();
Folder f = store.getFolder("Sent");
if (!f.exists()) f.create(Folder.HOLDS_MESSAGES);
f.appendMessages(new Message[] {msg});
Sobre Esta Tarefa
Os aplicativos Java EE podem utilizar as APIs do JavaMail ao procurar
referências para as connection factories de correio denominadas logicamente através do subcontexto
java:comp/env/mail, que é declarado no descritor de implementação do aplicativo e mapeado para os recursos específicos de instalação da sessão de correio. Como no caso de outros recursos do Java EE, isso pode ser feito para
eliminar a necessidade do aplicativo pelas referências do código permanente aos recursos
externos.
Procedimento
- Localize um recurso através do Java Naming
and Directory Interface (JNDI). A especificação do Java EE considera uma instância de sessão de correio
como um recurso ou um factory do qual as conexões de transporte e armazenamento de correio
podem ser obtidas. Não utilize sessões de correio com código permanente (ou seja, preencha um objeto Propriedades, em seguida, utilize-o para criar um objeto javax.mail.Session). Em vez disso, é necessário
seguir o modelo de programação do Java EE de configuração dos recursos por meio
dos recursos do sistema e, em seguida, localizá-los por meio de consultas do JNDI.
No código de amostra anterior, a linha javax.mail.Session mail_session = (javax.mail.Session) ctx.lookup("java:comp/env/mail/MailSession3"); é um exemplo de como não utilizar código
permanente em uma sessão de correio e utilizar um nome de recurso localizado através de JNDI. É possível considerar o nome da consulta, mail/MailSession3, como uma
referência indireta ao recurso real.
- Defina as referências de recurso ao montar seu aplicativo. Você deve definir uma referência de recurso para o recurso de correio no descritor de implementação do componente, porque uma sessão de correio é referida na consulta de JNDI. Normalmente, é possível utilizar uma ferramenta de montagem fornecida com o servidor de
aplicativos.
Ao criar essa referência, certifique-se de que o nome da referência corresponda ao nome utilizado no código. Por exemplo, o código anterior
utiliza
java:comp/env/mail/MailSession3 em sua consulta. Portanto, o nome dessa referência deve ser mail/Session3, e
o tipo de recurso deve ser javax.mail.Session. Após a configuração,
o descritor de implementação contém a seguinte entrada para a referência do recurso de correio:
<resource-reference>
<description>description</description>
<res-ref-name>mail/MailSession3</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
</resource-reference>
- Configure os provedores e as sessões de correio. O código de amostra faz referência a um recurso de correio, o descritor de implementação declara a referência, mas o recurso efetivo ainda não existe. Agora você precisa configurar o recurso de correio referido pelo componente do aplicativo.
Observe que a sessão de correio configurada deve ter suas partes de transporte e de acesso ao correio definidas; a primeira é obrigatória, porque o código está enviando uma mensagem, a segunda, porque também salva uma cópia no armazenamento de correio local. Ao configurar a sessão de correio, você precisa especificar um nome de JNDI. Esse é um nome importante para a instalação de seu aplicativo
e para a ligação das referências de recursos em seu aplicativo com os
recursos reais configurados.
- Instale o aplicativo. É possível instalar o aplicativo utilizando o console administrativo ou a ferramenta de script. Durante a instalação,
o servidor de aplicativo inspeciona todas as referências de recurso e requer que você
forneça um nome de JNDI para cada uma delas.
Esse não é um nome de JNDI, mas o nome de JNDI fornecido a um recurso específico configurado que é o destino da referência.
- Gerencie os provedores e sessões de correio existentes. É possível atualizar e remover os provedores e sessões de correio.
Para atualizar os provedores e sessões de correio:
- Abra o administrative console.
- Clique em na árvore de navegação do console.
- Selecione o recurso apropriado do Java Mail a ser modificado clicando
em Provedores de Correio ou Sessões de Correio.
- Selecione o recurso específico a modificar. Para remover um provedor de correio ou uma sessão de correio, selecione a caixa de opções ao lado do recurso apropriado e clique em Excluir.
- Clique em Aplicar ou em OK.
- Salve a configuração.
- Opcional: Depure
uma sessão de correio.
O que Fazer Depois
Se o seu aplicativo tiver um cliente, será possível atualizar os provedores de correio e
as sessões de correio utilizando o ACRCT (Application Client Resource Configuration Tool).