public static void enviarMailAdjuntos(ArrayList listaRutasAdjuntos, Properties props, String asunto, String mensaje) {
try{
Session session = Session.getDefaultInstance(props);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
// Asunto (opción de parametrizar en el properties)
message.setSubject(asunto);
// Se compone la parte del texto
BodyPart textoMensaje = new MimeBodyPart();
textoMensaje.setText(mensaje);
// Una MultiParte para agrupar texto y adjunto.
MimeMultipart multiParte = new MimeMultipart();
multiParte.addBodyPart(textoMensaje);
// Añadir adjuntos
for(Iterator itr = listaRutasAdjuntos.iterator(); itr.hasNext();){
String rutaFicheroAdjunto = (String)itr.next();
rutaFicheroAdjunto = rutaFicheroAdjunto.replace('\\', '/');
// Se compone el adjunto
BodyPart adjunto = new MimeBodyPart();
adjunto.setDataHandler(new DataHandler(new FileDataSource(rutaFicheroAdjunto)));
adjunto.setFileName(rutaFicheroAdjunto.substring(rutaFicheroAdjunto.lastIndexOf("/")+1 ));
multiParte.addBodyPart(adjunto);
}
// Contenido (mensaje + adjuntos)
message.setContent(multiParte);
// Quien envia el correo
message.setFrom(new InternetAddress(props.getProperty("mail.smtp.user")));
// A quien va dirigido (Pueden ser varios)
String[] direccionesDestino = props.getProperty("mail.smtp.direccionDestino").split(",");
ArrayList listaDireccionesDestino = new ArrayList(Arrays.asList(direccionesDestino));
for(int i=0; i< listaDireccionesDestino.size(); i++){
String direccionCorreo = (String)listaDireccionesDestino.get(i);
if(direccionCorreo != null){
message.addRecipient(Message.RecipientType.TO, new InternetAddress(direccionCorreo.trim()));
}
}
// Configuro servicio y propiedades
Transport t = session.getTransport("smtp");
t.connect(props.getProperty("mail.smtp.host"),props.getProperty("mail.smtp.user"),props.getProperty("mail.smtp.pass") );//ojo con la pass
t.sendMessage(message,message.getAllRecipients());
t.close();
}
catch (MessagingException e) {
e.printStackTrace();
}
}
enviarMail
Etiquetas:
java