Pessoal, alguem tem um exemplo legal ai de como enviar email com html e anexo no Javamail?
Eu aqui não estou conseguindo.
Fico no aguardo obrigado.
Pessoal, alguem tem um exemplo legal ai de como enviar email com html e anexo no Javamail?
Eu aqui não estou conseguindo.
Fico no aguardo obrigado.
cara,da uma olhada no Commons Email é bem facil e traquilo de fazer o que vc quer.
t+
ola amigo obrigado pela dica vou usar.
aqui segue um codigo de uma classe q uso pra mandar um email pra varios contatos e com 3 anexos(tu pode botar depois quantos anexos tu quiser):
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Classes;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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.swing.JOptionPane;
/**
*
* @author adm
*/
public class EnviarEmail {
/**
* @param args the command line arguments
*/
public static String lista=Configs_Etc.CarregarConfiguracoes.emailsEnviar; //lista vai guardar tipo [email removido];[email removido];[email removido]
String from = Configs_Etc.CarregarConfiguracoes.emailEmail;
String host = Configs_Etc.CarregarConfiguracoes.emailHost;
public void enviarEmailAnexos() throws Exception {
String nomeArquivoXmlAssinado=Telas.EnviarNFe_Integrador.nomeArquivoXmlAssinado;
String filename = nomeArquivoXmlAssinado.substring(0,nomeArquivoXmlAssinado.indexOf("-env-lot.xml")) + "-procNFe.xml";
String filename2 = nomeArquivoXmlAssinado.substring(0,nomeArquivoXmlAssinado.indexOf("-env-lot.xml")) + ".pdf";
String filename3 = nomeArquivoXmlAssinado;
//aqui vai botar o numero da nfe no email.
String msgText1 = Configs_Etc.CarregarConfiguracoes.emailCorpo;
msgText1=msgText1.replaceAll("%numeronfe",Telas.EnviarNFe_Integrador.numeronfe);
String subject = Configs_Etc.CarregarConfiguracoes.emailTitulo;
subject=subject.replaceAll("%numeronfe",Telas.EnviarNFe_Integrador.numeronfe);
ArrayList teste=new ArrayList();
//criar lista de emails no arraylist e depois passar ele pra um vetor de InternetAddress
String[] listaEmails = lista.split(";"); //essa vai ser um vetor com cada email em uma posição
System.out.println(lista);
for(int i=0;i<listaEmails.length;i++){
System.out.println(listaEmails[i]);
//JOptionPane.showMessageDialog(null,listaEmails[i]);
teste.add(new InternetAddress(listaEmails[i]));
}
//remover emails repetidos e tal, pq as vez se configura o email do remetente junto com o remetente e
//o mesmo email pode ta no destinatario. isso acontece pq hashset nao permite vlres repetidos.
HashSet teste2=new HashSet();
teste2.addAll(teste);
teste.clear();
teste.addAll(teste2);
InternetAddress[] vetor=(InternetAddress[])teste.toArray(new InternetAddress[teste.size()]);
// create some properties and get the default Session
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
Session session = Session.getInstance(props, null);
try {
// criar mensagem
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, vetor);
msg.setSubject(subject);
// criar a primeira parte da mensagem
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(msgText1);
// criar a segunda parte da mensagem, responsavel pelos anexos
MimeBodyPart mbp2 = new MimeBodyPart();
MimeBodyPart mbp3 = new MimeBodyPart();
MimeBodyPart mbp4 = new MimeBodyPart();
// isnerir anexo 1
FileDataSource fds = new FileDataSource(filename);
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(fds.getName());
// isnerir anexo 2
FileDataSource fds2 = new FileDataSource(filename2);
mbp3.setDataHandler(new DataHandler(fds2));
mbp3.setFileName(fds2.getName());
// isnerir anexo 3
FileDataSource fds3 = new FileDataSource(filename3);
mbp4.setDataHandler(new DataHandler(fds3));
mbp4.setFileName(fds3.getName());
// cria o objeto multipart e adiciona as partes a ele
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2); //anexo1
mp.addBodyPart(mbp3); //anexo2
mp.addBodyPart(mbp4); //anexo3
// adicionar o multipart na mensagem
msg.setContent(mp);
// setar data atual
msg.setSentDate(new Date());
// enviar msg
Transport.send(msg);
} catch (MessagingException mex) {
/*mex.printStackTrace();
Exception ex = null;
if ((ex = mex.getNextException()) != null) {
ex.printStackTrace();
}*/
StackTraceElement[] ste=mex.getStackTrace();
String erro="";
for(int i=0;i<ste.length;i++){
erro+="--"+ste[i].toString()+"\n";
}
JOptionPane.showMessageDialog(null,"Erro ao enviar email, verifique os emails dos destinatários e a configuração\n\n"+erro);
}
}
}