Enviar e-mail do gmail e comunicação com WebService NF-e

Boa tarde pessoal,
Preciso de ajuda com relação ao envio de e-mail para contas do gmail e comunicação com web services da NFe.

o código abaixo é da classe que envia os emails.

public class SendEMail {

    private String mailSMTPServer = "smtp.gmail.com";
    private String remetente = "remetente@gmail.com";
    private String passEMail = "senha";
    private String email = "destinatario@rhedesistemas.com.br";
    private String nomeRemet = "Alessandro";
    public void enviarEMail() throws MessagingException {

        SimpleAuth auth;
        String mailBody;
        String mailSubject;
        boolean isHTML;
        MimeBodyPart attachFilePart;
        FileDataSource fds;
        MimeBodyPart textPart;
        Properties mailProps;
        Message msg;
        Multipart mp;

        isHTML = true;
        mailBody = "Você esta recebendo o XML da nota fiscal eletronica.";
        mailSubject = "[Rhede Sistemas] XML de nota fiscal eletrônica";


        attachFilePart = new MimeBodyPart();
        fds = new FileDataSource("D:/xmlCliente.xml");
        attachFilePart.setDataHandler(new DataHandler(fds));
        attachFilePart.setFileName(fds.getName());

        textPart = new MimeBodyPart();
        if (isHTML == true) {
            textPart.setContent(mailBody, "text/html");
        } else {
            textPart.setContent(mailBody, "text/plain");
        }

        try {

            mailProps = new Properties();
            mailProps.setProperty("mail.transport.protocol", "smtp"); // define protocolo de envio como SMTP
            mailProps.setProperty("mail.smtp.host", mailSMTPServer); // server SMTP do GMAIL
            mailProps.put("mail.smtp.starttls.enable", "true");
            mailProps.put("mail.smtp.auth", "true"); // ativa autenticacao
            mailProps.put("mail.smtp.user", remetente); // usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)

            auth = new SimpleAuth(remetente, passEMail);
            Session session = Session.getDefaultInstance(mailProps, auth);
            session.setDebug(false);

            msg = new MimeMessage(session);
            msg.setRecipient(Message.RecipientType.TO, new InternetAddress(email));
            msg.setFrom(new InternetAddress(remetente, nomeRemet));
            msg.setSubject(mailSubject);

            mp = new MimeMultipart();
            mp.addBodyPart(textPart);
            mp.addBodyPart(attachFilePart);
            msg.setContent(mp);

            Transport tr;
            tr = session.getTransport("smtp"); // define smtp para transporte
            tr.connect(mailSMTPServer, remetente, passEMail);
            msg.saveChanges(); // don't forget this
            tr.sendMessage(msg, msg.getAllRecipients());
            session = null;
            tr.close();
            tr = null;
            mailProps.clear();

        } catch (Exception e) {
            e.printStackTrace();
        }

        auth = null;
        mailBody = null;
        mailSubject = null;
        isHTML = false;
        attachFilePart = null;
        fds = null;
        textPart = null;
        mailProps = null;
        msg = null;
        mp = null;

    }
}

// clase que retorna uma autenticacao para ser enviada e verificada pelo servidor smtp
class SimpleAuth extends Authenticator {

    public String username = null;
    public String password = null;

    public SimpleAuth(String user, String pwd) {
        username = user;
        password = pwd;
    }

    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(username, password);
    }
}

mailProps.put(“mail.smtp.starttls.enable”, “true”);

a linha de código acima é necessária para envio dos emails para contas do gmail, porem quando eu deixo esse código não consigo comunicação com nenhum web service da receita.
Esse é o erro quando tento comunicação com web service de envio da NFe por exemplo :

java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Alguém tem alguma dica para solução desse problema ?

Eu utilizo essas classes abaixo para enviar email com o gmail talvez lhe ajude…


    public void sendMail(){
        try
        {
            Properties props = System.getProperties();
              props.put("mail.transport.protocol", "smtp");
              props.put("mail.smtp.starttls.enable","true");
              props.put("mail.smtp.host",smtpServ);
              props.put("mail.smtp.auth", "true");

              Authenticator auth = new SMTPAuthenticator();
              Session session = Session.getInstance(props, auth);
              Message msg = new MimeMessage(session);

              msg.setFrom(new InternetAddress(from));
              msg.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse(email, false));

              msg.setText(nome);
              msg.setSubject("Sistema de Cadastro de Curriculum");
              msg.setText("\n\nCurriculum Cadastrado no Sitesma\n\n"+
                          "\n-- Dados Pessoais -- \n"+
                          "\n\nNome: "+nome+
                          "\nCPF: "+cpf+
                          "\nIdade: "+idade+
                          "\n\n-- Dados Profissionais -- \n"+
                          "\nExperiencia: \n"+experiencia+
                          "\n\nFormação: \n"+formacao+
                          "\n\nObrigado por ter se cadastrado no nosso Sistema.");

        }
        catch (Exception ex)
        {
          ex.printStackTrace();
          System.out.println("Exception "+ex);
        }
  }

  
      private class SMTPAuthenticator extends javax.mail.Authenticator {
      
        
        @Override
        public PasswordAuthentication getPasswordAuthentication() {
            String username = "MeuEMAIL@gmail.com";
            String password = "java123456";
            return new PasswordAuthentication(username, password);
        }

A minha classe ela funciona, o problema é a propriedade : props.put(“mail.smtp.starttls.enable”,“true”);
quando deixo ela não consigo comunicação com os web services da NFe.

se tirar essa configuração faz a comunicação com web service da NFe, porem não envia os emails.

Deve estar havendo algum tipo conflito, que não consegui identificar ainda.