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.