Ola Pessoal,Depois de um longo periodo sem postar, neste post, vou mostrar como mandar email com anexo em java, e para testar o nosso envio de email, vamos usar o gmail. Neste exemplo sera usado a API javax.mail, teremos apenas uma classe que ira mandar uma imagem em anexo usando o protocolo do gmail.No final do post, o projeto estara disponivel para download.package com.blogspot.jabesfelipe.email;import java.io.InputStream;import java.util.Properties;import javax.activation.DataHandler;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.Multipart;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import javax.mail.util.ByteArrayDataSource;/** * Classe para enviar email em anexo usando o Gmail. * * @author jabes.cunha * */public class EnviaEmail { public static void main(String[] args) { new EnviaEmail().enviar(); } public void enviar() { try { //usuario e senha do seu gmail final String usuario = "jabesfelipe@gmail.com"; final String senha = "mandioca"; //config. do gmail Properties mailProps = new Properties(); mailProps.put("mail.transport.protocol", "smtp"); mailProps.put("mail.smtp.starttls.enable","true"); mailProps.put("mail.smtp.host", "smtp.gmail.com"); mailProps.put("mail.smtp.auth", "true"); mailProps.put("mail.smtp.user", usuario); mailProps.put("mail.debug", "true"); mailProps.put("mail.smtp.port", "465"); mailProps.put("mail.smtp.socketFactory.port", "465"); mailProps.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); mailProps.put("mail.smtp.socketFactory.fallback", "false"); //eh necessario autenticar Session mailSession = Session.getInstance(mailProps, new Authenticator() { public PasswordAuthentication getPasswordAuthentication(){ return new PasswordAuthentication(usuario, senha); } }); mailSession.setDebug(false); //config. da mensagem Message mailMessage = new MimeMessage(mailSession); //remetente mailMessage.setFrom(new InternetAddress(usuario)); //destinatario mailMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(usuario)); //mensagem que vai no corpo do email MimeBodyPart mbpMensagem = new MimeBodyPart(); mbpMensagem.setText("Segue em anexo, imagem do novo focus hath."); //partes do email Multipart mp = new MimeMultipart(); mp.addBodyPart(mbpMensagem); //imagem que sera enviada em anexo, ta no mesmo diretorio da classe. String imagem = "focusHath2011.jpg"; InputStream is = getClass().getResourceAsStream(imagem); //setando o anexo MimeBodyPart mbpAnexo = new MimeBodyPart(); mbpAnexo.setDataHandler(new DataHandler(new ByteArrayDataSource(is, "application/image"))); mbpAnexo.setFileName(imagem); mp.addBodyPart(mbpAnexo); //assunto do email mailMessage.setSubject("Novo Focus Hath 2011"); //seleciona o conteudo mailMessage.setContent(mp); //envia o email Transport.send(mailMessage); } catch (Exception e) { e.printStackTrace(); } }}EnviaEmail.javaA classe, esta documentada, explicando os passos a passos, o e-mail que sera enviado, ficara conforme imagem abaixo:Para quem quiser baixar o projeto desenvolvido, clique aqui.Qualque duvida, critica ou sugestao, fico a disposicao. Ola Pessoal,Continuando nosso projeto em EJB2, neste post, vamos criar dois tipos de Client, o primeiro sera um projeto web, que vai usar Servlet, o segundo sera uma aplicacao em Swing, ambos os projetos irao acessar nosso EJB2 por meio do recurso de JNDI.Uma das grandes vantagens do EJB, e o reuso do codigo, assim, nossa camada de negocio, podera ser usada, em diversos tipo de Client.Ao final deste post, deixarei o projeto completo para download.1. Passo: Vamos criar um projeto web chamado ExemploEJB-web, nesse projeto, crie um Servlet chamado HelloServlet, lembrando que e necessario adicionar o projeto ExemploEJB2 em Project References, e nao esqueca de adionar este projeto como modulo Web no arquivo application.xml que esta no projeto EAR.package com.blogpost.jabesfelipe.servlets;import java.io.IOException;import java.io.PrintWriter;import javax.ejb.CreateException;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.rmi.PortableRemoteObject;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.blogpost.jabesfelipe.service.Hello;import com.blogpost.jabesfelipe.service.HelloHome;public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { Context initial = new InitialContext(); Object objref = initial.lookup("HelloBean"); HelloHome home = (HelloHome) PortableRemoteObject.narrow(objref, HelloHome.class); Hello remote = home.create(); PrintWriter out = response.getWriter(); out.println(remote.showName("Jabes Felipe")); } catch (NamingException e) { e.printStackTrace(); } catch (CreateException e) { e.printStackTrace(); } } }HelloServlet.javaPara poder testar nossa aplicacao, digite a seguinte URL http://localhost:8080/ExemploEJB2-web/HelloServlet.2. Passo: Vamos agora, criar um