0

como puedo solucionar aquel problema que no me deja enviar correos electrónicos de forma masiva, estoy usando JavaMail, Java y MySql.
Este es mi código.

public static void EnviarCorreoElectronicoGrupo(String Asunto, String MensajeTexto) throws SQLException{
    final String Username = "ancasi.daniel.2@gmail.com";
    final String Password = "dlbopzyvintigdma";

    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");

    Session session = Session.getInstance(props, new javax.mail.Authenticator() {
        @Override
        protected PasswordAuthentication getPasswordAuthentication(){
            return new PasswordAuthentication(Username, Password);
        }
    });

    try{
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(Username));

        ArrayList<Alumno> ListaAlumno = Alumno_BD.ListarAlumno(); // Clase y método donde recupero valores de la BD
        Address[] Destinatarios = new Address[ListaAlumno.size()];
        for(int i=0; i<ListaAlumno.size(); i++){
            Alumno Alu = ListaAlumno.get(i);
            Destinatarios[i] = new InternetAddress(Alu.getEmail_Alum());
        }

        message.addRecipients(Message.RecipientType.TO, Destinatarios); 
        message.setSubject(Asunto);
        message.setText(MensajeTexto);
        //Transport.send(message); 
        Transport Enviar = session.getTransport("smtp");
        Enviar.connect(Username, Password);
        Enviar.sendMessage(message, message.getAllRecipients()); 
        Enviar.close();
        System.out.println("Correo enviado.");
    }catch(MessagingException | SQLException e){
        throw new RuntimeException(e);
    }
}

En esta parte del código que voy a mostrar a continuación estoy recuperando los valores de mi BD y a su vez almaceno en un Arreglo de tipo Address todos los correos que quiero enviar.

ArrayList<Alumno> ListaAlumno = Alumno_BD.ListarAlumno();
Address[] Destinatarios = new Address[ListaAlumno.size()];
for(int i=0; i<ListaAlumno.size(); i++){
    Alumno Alu = ListaAlumno.get(i);
    Destinatarios[i] = new InternetAddress(Alu.getEmail_Alum());
}

Pero al ejecutar sale como resultado: java.lang.NullPointerException, alguien sabe que estoy haciendo mal, cualquier respuesta es bienvenida.

Daniel
  • 343
  • 3
  • 18
  • 1
    Posible duplicado de: https://es.stackoverflow.com/questions/42977/cu%C3%A1l-es-la-soluci%C3%B3n-a-todos-los-errores-nullpointerexception-presentes-pasados – BetaM Jul 18 '19 at 16:47
  • Gracias @Aprendiz me había olvidado llamar a la librería `MySQL JDBC Driver` a mi proyecto, era esa la razón por la que me salia ese error. – Daniel Jul 18 '19 at 16:59

0 Answers0