Enviar email – Mentawai

1 – Baixe o mail.jar e activation.jar e adicione-os ao seu projeto.

Para baixar clique aqui.


2 – Segue a classe:


package buriti.controller.EnviarEmail;

import buriti.model.dao.DaoPessoa;
import buriti.model.dao.DaoUsuario;
import buriti.model.pojo.PojoPessoa;
import buriti.model.pojo.PojoUsuario;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.mentawai.core.BaseAction;
import org.mentawai.mail.RandomStringUtils;

public class EnviarEmail extends BaseAction {

    /**
     * Método para enviar email para o usuário para por exemplo recuperar sua senha
     * enviarEmail("todos@firma.com.br", "Lista da Firma", "fulano@firma.com.br",
     * "Fulano da Silva", "Recuperar senha");
     * @return SUCCESS se der tudo certo e ERROR caso não funcione.
     */
    public String execute() throws Exception {
        String emailDest = input.getStringValue("email");
        PojoPessoa pessoa = new PojoPessoa();
        pessoa.setPes_email(emailDest);
        pessoa = DaoPessoa.getInstance().readByEmail(pessoa);
        if (pessoa.getPes_id() == null) {
            session.setAttribute("emailNaoExiste", "Não existe este email cadastrado!");
            return SUCCESS;
        } else {
            String novaSenha = RandomStringUtils.randomAlphanumeric(8);

            PojoUsuario pojoUsuario = new PojoUsuario();
            pojoUsuario = DaoUsuario.getInstance().readByFkPessoa(pessoa.getPes_id());
            if(pojoUsuario.getUsu_tipo().equals("A")){
                session.setAttribute("emailNaoExiste", "Administrador não pode recuperar senha por aqui!");
                return ERROR;
            }else{
                pojoUsuario.setSenha(novaSenha);
                pojoUsuario.setPojoPessoa(pessoa);
                DaoUsuario.getInstance().delete(pojoUsuario.getId());
                DaoUsuario.getInstance().create(pojoUsuario);

                String nomeDest = pessoa.getPes_nome();
                String emailRemet = "buriticidadeverde@gmail.com";
                String nomeRemet = "Buriti";
                String assunto = "Recuperando a senha";
                String corpo = "Olá " + pessoa.getPes_nome() + "! "
                    + "Sua nova senha de acesso ao "
                    + "sistema Buriti é: " + pojoUsuario.getSenha();

                Properties props = System.getProperties();
                props.put("mail.smtp.host", "smtp.gmail.com");
                props.put("mail.smtp.auth", "true");

                Authenticator auth = new Authenticator() {

                @Override
                public PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("seuemail@gmail.com", "suasenha");
                }
                };

                Session sessao = Session.getInstance(props, auth);
                MimeMessage message = new MimeMessage(sessao);
                message.setFrom(new InternetAddress(emailRemet, nomeRemet));
                message.addRecipient(Message.RecipientType.TO,
                    new InternetAddress(emailDest, nomeDest));
                message.setSubject(assunto);
                message.setContent(corpo, "text/plain");

                Transport.send(message);

                session.setAttribute("emailNaoExiste", "A nova senha foi enviada para o email cadastrado!");
                return SUCCESS;
                }
        }
    }
}

Configurações do smtp que podem ser usadas:

      Properties prop = new Properties();
      props.put ("mail.smtp.host",mailServer);
      props.put ("mail.transport.protocol", "smtp");
      props.put ("mail.smtp.auth", "true");
      props.put ("mail.debug", "true");
      props.put ("mail.smtp.debug", "true");
      props.put ("mail.mime.charset", "ISO-8859-1");
      props.put ("mail.smtp.port", "25");
      props.put ("mail.smtp.starttls.enable", "true");
      props.put ("mail.smtp.socketFactory.port", "25");
      props.put ("mail.smtp.socketFactory.fallback", "false");
No comments yet.
No trackbacks yet.