Estou desenvolvendo (TENTANDO Né!?) uma Classe Genérica
[/code]
/**
*
*/
package principal;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
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;
/**
*/
public class EnviaEmail {
private String strNomeServidorSMTP;
private String strUsuarioServidorSMTP;
private String strSenhaServidorSMTP;
private String strNomeRemetente;
private String streMailRemetente;
private String strNomeDestinatario;
private String streMailDestinatario;
private String[] streMailDestinatarioCC;
private String[] streMailDestinatarioBCC;
// private ArrayList<File> alAnexos;
private File[] fAnexos;
private String strAssunto;
private StringBuffer sbMensagem;
private boolean bolAvisoRecebimento;
public EnviaEmail(final String strNomeServidorSMTP,
final String strUsuarioServidorSMTP,
final String strSenhaServidorSMTP,
final String strNomeRemetente,
final String streMailRemetente,
final String strNomeDestinatario,
final String streMailDestinatario,
final String[] streMailDestinatarioCC,
final String[] streMailDestinatarioBCC,
// final ArrayList<File> alAnexos,
final File[] fAnexos,
final String strAssunto,
final StringBuffer sbMensagem,
final boolean bolAvisoRecebimento) {
this.strNomeServidorSMTP = strNomeServidorSMTP;
this.strUsuarioServidorSMTP = strUsuarioServidorSMTP;
this.strSenhaServidorSMTP = strSenhaServidorSMTP;
this.strNomeRemetente = strNomeRemetente;
this.streMailRemetente = streMailRemetente;
this.strNomeDestinatario = strNomeDestinatario;
this.streMailDestinatario = streMailDestinatario;
this.streMailDestinatarioCC = streMailDestinatarioCC;
this.streMailDestinatarioBCC = streMailDestinatarioBCC;
// this.alAnexos = alAnexos;
this.fAnexos = fAnexos;
this.strAssunto = strAssunto;
this.sbMensagem = sbMensagem;
this.bolAvisoRecebimento = bolAvisoRecebimento;
this.Envia();
}
private void Envia() {
try {
//Configura algumas propriedades e pega a seção padrão
Properties props = new Properties();
//props.put("mail.debug", "true"); //
//props.put("mail.from", "");
//props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP
//props.put("mail.smtp.starttls.enable","true"); //
//props.put("mail.smtp.auth", "true"); //ativa autenticacao
//props.put("mail.smtp.socketFactory.port", "465"); //mesma porta para o socket
//props.put("mail.smtp.socketFactory.fallback", "false"); //
//props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); //
props.put("mail.smtp.host", "smtp.ipiranga.com.br"); //server SMTP do GMAIL
//props.put("mail.smtp.port", "465"); //porta
//props.put("mail.smtp.user", "prsantosbr@gmail.com"); //usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)
// mail.debug boolean
// mail.from String
// mail.mime.address.strict boolean
// mail.host String
// mail.store.protocol String
// mail.transport.protocol String
// mail.user String
// mail.protocol.class String
// mail.protocol.host String
// mail.protocol.port int
// mail.protocol.user String
Session session = Session.getDefaultInstance(props, null);
session.setDebug(false);
//Cria Mensagem
MimeMessage msg = new MimeMessage(session);
//Define o endereço do remetente (DE / FROM)
msg.setFrom(new InternetAddress(this.streMailRemetente, strNomeRemetente));
//Define o endereço do destinatário (PARA / TO)
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(streMailDestinatario, strNomeDestinatario));
//Define os endereços dos destinatário (Com Cópias / CC)
if (streMailDestinatarioCC != null) {
InternetAddress[] iaEmailDestinatarioCC = new InternetAddress[streMailDestinatarioCC.length];
for (int i = 0; i < streMailDestinatarioCC.length; i++) {
iaEmailDestinatarioCC[i] = new InternetAddress(streMailDestinatarioCC[i]);
}
msg.setRecipients(Message.RecipientType.CC, iaEmailDestinatarioCC);
} else {
//
}
//Define os endereços dos destinatário (Com Cópias / BCC)
if (streMailDestinatarioBCC != null) {
InternetAddress[] iaEmailDestinatarioBCC = new InternetAddress[streMailDestinatarioBCC.length];
for (int i = 0; i < streMailDestinatarioBCC.length; i++) {
iaEmailDestinatarioBCC[i] = new InternetAddress(streMailDestinatarioBCC[i]);
}
msg.setRecipients(Message.RecipientType.BCC, iaEmailDestinatarioBCC);
} else {
//
}
//Define o assunto
msg.setSubject(this.strAssunto);
//Aviso de Recebimento
if (bolAvisoRecebimento) {
msg.addHeaderLine("ReturnReceipt");
msg.setHeader("ReturnReceipt", "1");
msg.addHeaderLine("Disposition-Notification-To");
msg.setHeader("Disposition-Notification-To", strNomeRemetente);
}
//Define data
msg.setSentDate(new Date());
//Cria MultiParte
MimeMultipart mmpMultiParte = new MimeMultipart();
//Cria e preenche a primeira parte da mensagem
MimeBodyPart mbpCorpoMensagem = new MimeBodyPart();
//Mensagem
mbpCorpoMensagem.setText(sbMensagem.toString());
//
mmpMultiParte.addBodyPart(mbpCorpoMensagem);
msg.setContent(mmpMultiParte);
for (int i = 0; i < this.fAnexos.length; i++) {
if (!fAnexos[i].isDirectory()) {
//Anexa arquivo
//Cria e preenche a segunda parte da mensagem
MimeBodyPart mbpAnexos = new MimeBodyPart();
FileDataSource fdsArquivoAnexo = new FileDataSource(fAnexos[i].toString());
DataHandler dhArquivoAnexo = new DataHandler(fdsArquivoAnexo);
mbpAnexos.setDataHandler(dhArquivoAnexo);
mbpAnexos.setFileName(fdsArquivoAnexo.getName());
mmpMultiParte.addBodyPart(mbpAnexos);
msg.setContent(mmpMultiParte);
//Implementa corpo da mensagem
MimeBodyPart mbpCorpoMensagem2 = new MimeBodyPart();
mbpCorpoMensagem2.setText(fdsArquivoAnexo.getName());
mmpMultiParte.addBodyPart(mbpCorpoMensagem2);
msg.setContent(mmpMultiParte);
System.out.println("Local do Arquivo a enviar - " + fdsArquivoAnexo.getFile());
mbpCorpoMensagem2 = null;
dhArquivoAnexo = null;
fdsArquivoAnexo = null;
mbpAnexos = null;
}
}
//Envia mensagem
Transport.send(msg);
System.out.println("Email Enviado com sucesso ...");
} catch (Exception mex) {
mex.printStackTrace();
}
}
}
[code]