Olá 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 será usado a API javax.mail, teremos apenas uma classe que irá mandar uma imagem em anexo usando o protocolo do gmail.
No final do post, o projeto estará disponível 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.java
A classe, está documentada, explicando os passos a passos, o e-mail que será enviado, ficará conforme imagem abaixo:
Para quem quiser baixar o projeto desenvolvido, clique aqui.
Qualque dúvida, crítica ou sugestão, fico à disposição.
Qualque dúvida, crítica ou sugestão, fico à disposição.
 07:17
07:17
 Jabes Felipe
Jabes Felipe
 

 


 
 
 
 
