com.arch.util.EmailGmailUtils Maven / Gradle / Ivy
package com.arch.util;
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 java.io.File;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
public class EmailGmailUtils implements Serializable {
private static final long serialVersionUID = -4996145542590233380L;
private String servidorSmtp = "smtp.gmail.com";
private String usuarioSmtp;
private String senhaSmtp;
private String emailDestinatario;
private String emailCopia = "";
private String assunto;
private String mensagem;
private List anexos = new ArrayList<>();
public static void enviar(String servidorSmtp, String usuarioSmtp, String senhaSmtp, String emailDestinatario, String assunto, String mensagem) {
EmailGmailUtils emailGmail = new EmailGmailUtils();
emailGmail.setServidorSmtp(servidorSmtp);
emailGmail.setAssunto(assunto);
emailGmail.setEmailDestinatario(emailDestinatario);
emailGmail.setMensagem(mensagem);
emailGmail.setSenhaSmtp(senhaSmtp);
emailGmail.setUsuarioSmtp(usuarioSmtp);
emailGmail.enviar();
}
public String getServidorSmtp() {
return servidorSmtp;
}
public void setServidorSmtp(String servidorSmtp) {
this.servidorSmtp = servidorSmtp;
}
public String getUsuarioSmtp() {
return usuarioSmtp;
}
public void setUsuarioSmtp(String usuarioSmtp) {
this.usuarioSmtp = usuarioSmtp;
}
public String getSenhaSmtp() {
return senhaSmtp;
}
public void setSenhaSmtp(String senhaSmtp) {
this.senhaSmtp = senhaSmtp;
}
public String getEmailDestinatario() {
return emailDestinatario;
}
public void setEmailDestinatario(String emailDestinatario) {
this.emailDestinatario = emailDestinatario;
}
public String getEmailCopia() {
return emailCopia;
}
public void setEmailCopia(String emailCopia) {
this.emailCopia = emailCopia;
}
public String getAssunto() {
return assunto;
}
public void setAssunto(String assunto) {
this.assunto = assunto;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
public List getAnexos() {
return anexos;
}
public void setAnexos(List anexos) {
this.anexos = anexos;
}
public void enviar() {
LogUtils.start();
try {
Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable", "true"); // added this line
props.put("mail.smtp.host", servidorSmtp);
props.put("mail.smtp.user", usuarioSmtp);
props.put("mail.smtp.password", senhaSmtp);
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
String[] destinatarios = emailDestinatario.split(";");
String[] copias = emailCopia.split(";"); // added this
Session session = Session.getDefaultInstance(props, null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(usuarioSmtp));
InternetAddress[] toAddress = new InternetAddress[destinatarios.length];
for (int i = 0; i < destinatarios.length; i++) {
toAddress[i] = new InternetAddress(destinatarios[i]);
}
for (int i = 0; i < toAddress.length; i++) {
message.addRecipient(Message.RecipientType.TO, toAddress[i]);
}
if (!"".equals(emailCopia)) {
InternetAddress[] toCopias = new InternetAddress[copias.length];
for (int i = 0; i < copias.length; i++) {
toCopias[i] = new InternetAddress(copias[i]);
}
for (int i = 0; i < toCopias.length; i++) {
message.addRecipient(Message.RecipientType.CC, toCopias[i]);
}
}
MimeBodyPart mbpMensagem = new MimeBodyPart();
mbpMensagem.setText(mensagem);
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbpMensagem);
for (File anexo : anexos) {
MimeBodyPart mbpAnexo = new MimeBodyPart();
// anexa o arquivo na mensagem
FileDataSource fds = new FileDataSource(anexo);
mbpAnexo.setDataHandler(new DataHandler(fds));
mbpAnexo.setFileName(fds.getName());
mp.addBodyPart(mbpAnexo);
}
// add a Multipart na mensagem
message.setContent(mp);
LogUtils.generate("USUARIO SMTP: " + usuarioSmtp);
LogUtils.generate("SENHA SMTP: " + senhaSmtp);
LogUtils.generate("SERVIDOR SMTP: " + servidorSmtp);
for (String para : destinatarios) {
LogUtils.generate("DESTINATARIO(s): " + para);
}
for (String copia : copias) {
LogUtils.generate("COPIAS(s): " + copia);
}
LogUtils.generate("ASSUNTO: " + assunto);
LogUtils.generate("MENSAGEM: " + mensagem);
message.setSubject(assunto);
Transport transport = session.getTransport("smtp");
transport.connect(servidorSmtp, usuarioSmtp, senhaSmtp);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
LogUtils.end();
} catch (MessagingException e) {
LogUtils.generate(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy