Controle.EmailControl.java Source code

Java tutorial

Introduction

Here is the source code for Controle.EmailControl.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Controle;

import Modelo.ModelEmail;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;

/**
 *
 * @author Alunos
 */
public class EmailControl {

    public boolean enviarEmail(ModelEmail e) throws EmailException {
        try {
            MultiPartEmail email = new MultiPartEmail(); //Classe responsvel por enviar o email
            String emailRemetente = e.getRemetente(); //gmail: testepooemail@gmail.com | hotmail: programacao451@hotmail.com
            String nomeRemetente = e.getNomeRemetente();
            String senhaRemetente = e.getSenha(); //gmail: ifmginfo | hotmail: ifmginfo12
            String hostName = ""; //gmail: smtp.gmail.com | hotmail: smtp-mail.outlook.com
            if (e.isTipoEmail()) {
                hostName = "smtp-mail.outlook.com";
            } else {
                hostName = "smtp.gmail.com";
            }
            String emailDestinatario = e.getDestinatario(); //email do destinatrio
            int porta = 587;
            String portaSmtp = Integer.toString(porta); //converte a porta para String

            email.setSmtpPort(porta); //porta para envio
            email.setAuthenticator(new DefaultAuthenticator(emailRemetente, senhaRemetente)); //autenticao da conta
            email.setDebug(true);
            email.setHostName(hostName); //varia de cada servidor
            //propriedades para o envio  do email
            email.getMailSession().getProperties().put("mail.smtps.auth", true);
            email.getMailSession().getProperties().put("mail.debug", "true");
            email.getMailSession().getProperties().put("mail.smtps.port", portaSmtp);
            email.getMailSession().getProperties().put("mail.smtps.socketFactory.port", portaSmtp);
            email.getMailSession().getProperties().put("mail.smtps.socketFactory.class",
                    "javax.net.ssl.SSLSocketFactory");
            email.getMailSession().getProperties().put("mail.smtps.socketFactory.fallback", "false");
            email.getMailSession().getProperties().put("mail.smtp.starttls.enable", true);
            email.getMailSession().getProperties().put("mail.smtp.starttls.required", true);
            email.getMailSession().getProperties().put("mail.smtp.ssl.trust", hostName);
            email.setFrom(emailRemetente, nomeRemetente); //email e nome de quem est enviando o email
            email.setSubject(e.getAssunto()); //Assunto do email
            email.setMsg(e.getMensagem()); //Mensagem do email
            email.addTo(emailDestinatario); //destinatrio do email
            email.setTLS(true); //define o mtodo de criptografia
            if (e.isPossuiAnexo()) {
                EmailAttachment anexo1 = new EmailAttachment(); //Classe para anexar arquivos
                anexo1.setPath(e.getCaminhoAnexo()); //Incluindo diretrio do anexo
                anexo1.setDisposition(EmailAttachment.ATTACHMENT); //Informando um email que tem anexo
                email.attach(anexo1); //Atribuindo os anexos ao email
                email.send(); //envia o email
                System.out.println("Email Enviado com Sucesso !!!");
            } else {
                email.send(); //envia o email
                System.out.println("Email Enviado com Sucesso !!!");
            }
            return true;

        } catch (Exception ex) {
            return false;
        }
    }

}