All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.arch.util.EmailGmailUtils Maven / Gradle / Ivy

There is a newer version: 18.12.0
Show newest version
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