Académique Documents
Professionnel Documents
Culture Documents
O que JavaMail?
API genrica para construir aplicaes que
manipulam correio eletrnico (no necessariamente
Internet e-mail) e messaging como clientes
Serve para estender aplicaes existentes para lidar com
mensagens, cabealhos, attachments, etc.
Permite um nvel de abstrao mais alta (em
comparao com sockets)
Permite independncia de implementao (em
comparao alternativas como "com.sun.net.smtp.*"
IMAP
Pode ser usado no lugar do POP
JavaMail
Cliente do
Remetente
SMTP
Servidor
SMTP do
Remetente
SMTP
Servidor
SMTP do
Destinatrio
Servidor
POP3/IMAP do
Destinatrio
Cliente do
Destinatrio
POP
IMAP
JavaMail
Sesses: javax.mail.Session
Servio de Armazenamento: javax.mail.Store
Servio de transporte: javax.mail.Transport
Mensagens: javax.mail.Message, Part, MultiPart
JARs
activation.jar (JavaBeans Activation Framework)
mail.jar
* parcial
A Sesso
Dois papis
guardar propriedades acessveis via construtores
oferece mtodos de fbrica para objetos Store e Transport
Autenticadores
Passados como parmetro nos
mtodos getInstance()
Propriedades como
servidor de email,
usurio, etc.
Mensagens
So encapsuladas na classe abstrata Message, que possui
Conjunto de cabealhos RFC822 (Headers)
Contedo (javax.activation.DataHandler)
Envio de mensagens
Depois de criada a mensagem, basta pass-la para
um meio de transporte para envi-la
Forma mais simples de fazer passar para o mtodo
(esttico) send(), de javax.mail.Transport
Transport.send(msg);
Recuperao de Mensagens
JavaMail 1.2 possui implementaes para POP3 e IMAP
A classe Store permite a conexo a um repositrio de
mensagens (message store)
Store popStore = session.getStore("pop3");
popStore.connect("localhost", null, null);
Filtros
A classe abstrata SearchTerm permite fazer buscas em
mensagens dos folders com base em critrios dependentes
da implementao de uma subclasse
SubjectTerm, faz buscas baseadas no assunto
FromStringTerm busca no cabealho From
AndTerm, OrTerm, NotTerm aceitam outros SearchTerm
SearchTerm st =
new AndTerm(new FromStringTerm("elfodon@gurus.org"),
new SubjectTerm("[java-list]"));
Message[] msgs = folder.search(st);
10
11
12
Concluses
JavaMail oferece uma API que permite transformar
qualquer aplicao Java em um cliente IMAP, SMTP,
POP3 ou SMTP
Permite capacitar servlets, JSPs, EJBs e outros
componentes com recursos de e-mail
Pode ser usado para messaging XML (Web Services)
Pode ser usado para transferir arquivos de forma
assncrona (usando attachments)
13
Exerccios
1. Escreva uma pgina JSP simples que oferea uma
interface para
Escrever uma mensagem
Fazer upload de um arquivo (attachment). Use a
biblioteca cos.jar em cap06\hunter\upload\lib (veja
exemplos na mesma pasta)
Enviar mensagem com arquivo atachado
Fontes
[1] Jim
15
helder@ibpinet.net
www.argonavis.com.br
16