0. Introducción
Ahora toca enviar los correos a cada persona. Para ello recorreremos la carpeta donde se han guardado los "zips" y los enviaremos.1. Crear una sesión de correo
Tenemos que darle el password, que en este caso como es un proceso automatizado lo guardamos en un fichero de propiedades
Session session = Session.getDefaultInstance( mailProps, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(fromAddress, mailProps.getProperty("mail.smtp.password")); } });
2. Función de enviar un correo
Para enviar un correo no hace falta:- Sesión
- Direccion origen del envio
- Direcion/es de destino
- Mensaje
- Adjuntos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | public static void sendSSLMessage(Session session, String mensaje, String destinos[], String fileURL, String fromAddress) throws MessagingException { //Mensaje Message msg = new MimeMessage(session); //Direccion procedencia InternetAddress addressFrom = new InternetAddress(fromAddress); msg.setFrom(addressFrom); //Direcciones destino InternetAddress[] addressTo = new InternetAddress[destinos.length]; for (int i = 0; i < destinos.length; i++) { addressTo[i] = new InternetAddress(destinos[i]); } msg.setRecipients(Message.RecipientType.TO, addressTo); // Setting the Subject and Content Type msg.setSubject(mensaje); msg.setContent(msg, "text/html"); // Adding text to the message BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText(mensaje); //Adjuntos Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); messageBodyPart = new MimeBodyPart(); DataSource source = new FileDataSource(fileURL); messageBodyPart.setDataHandler(new DataHandler(source)); String fName="ADJUNTO"+fileURL.substring(0,fileURL.lastIndexOf(".")); messageBodyPart.setFileName(fName); multipart.addBodyPart(messageBodyPart); msg.setContent(multipart); // Damos una fecha para evitar el mensaje 552 Mail with no Date header not accepted here msg.setSentDate(new java.util.Date()); // Sending the message Transport.send(msg); } |
3. Función que recorre una carpeta y envia los ficheros zip
Solo inidcaremos como recorremos la carpeta en busca de ficheros "zip"
for (File fileEntry:folder.listFiles( (dir, name) -> name.endsWith(".zip")) ) {
Happy coding!
No hay comentarios :
Publicar un comentario