/** * Create an empty MimeMessage object with all properties set * * @param from Sender address * @param replyTo Reply-to address (null to omit) * @param to Array of target addresses * @param cc Array of CC addresses - or null * @param subject Subject */ private static MimeMessage createMessage( String from, String replyTo, String[] to, String[] cc, String subject) throws MessagingException { Properties p = new Properties(); p.setProperty("mail.transport.protocol", "smtp"); p.setProperty("mail.smtp.host", smtpHost); p.setProperty("mail.from", from); Session s = Session.getInstance(p); MimeMessage mm = new MimeMessage(s); InternetAddress[] aiaTo = new InternetAddress[to.length]; for (int i = 0; i < aiaTo.length; ++i) { aiaTo[i] = new InternetAddress(to[i]); } mm.addRecipients(Message.RecipientType.TO, aiaTo); if (cc != null) { InternetAddress[] aiaCC = new InternetAddress[cc.length]; for (int i = 0; i < aiaCC.length; ++i) { aiaCC[i] = new InternetAddress(cc[i]); } mm.addRecipients(Message.RecipientType.CC, aiaCC); } if (replyTo != null) { InternetAddress[] aiaReplyTo = new InternetAddress[1]; aiaReplyTo[0] = new InternetAddress(replyTo); mm.setReplyTo(aiaReplyTo); } mm.setFrom(new InternetAddress(from)); mm.setSubject(subject, "UTF-8"); mm.setSentDate(new Date()); return mm; }
public boolean send() { try { // creamos las propiedades del mail Properties propiedades = System.getProperties(); propiedades.put("mail.smtp.host", hostSmtp); propiedades.put("mail.smtp.auth", "true"); propiedades.put("mail.smtp.port", puertoSMTP); // creamos la sesión para enviar el mail SMTPAuthentication auth = new SMTPAuthentication(); Session mailSesion = Session.getInstance(propiedades, auth); // creamos el mensaje MimeMessage mens = new MimeMessage(mailSesion); // Definimos la dirección del remitente mens.setFrom(new InternetAddress(this.origen)); // creamos un array de las direcciones de los destinatarios InternetAddress[] addressTo = new InternetAddress[this.direcciones.size()]; for (int i = 0; i < this.direcciones.size(); i++) { addressTo[i] = new InternetAddress((String) this.direcciones.get(i)); } // definimos los destinatarios mens.addRecipients(Message.RecipientType.TO, addressTo); // definiemos la fecha de envio mens.setSentDate(new Date()); // Definimos el asunto mens.setSubject(asunto); Multipart multipart = new MimeMultipart(); MimeBodyPart texto = new MimeBodyPart(); texto.setContent(this.mensaje, "text/html"); multipart.addBodyPart(texto); if (this.rutaAdjunto != null) { BodyPart adjunto = new MimeBodyPart(); adjunto.setDataHandler(new DataHandler(new FileDataSource(this.rutaAdjunto))); adjunto.setFileName(this.nombreAdjunto); multipart.addBodyPart(adjunto); } // Definimos el cuerpo del mensaje mens.setContent(multipart); // Creamos el objeto transport con el método Transport transporte = mailSesion.getTransport("smtp"); // enviamos el correo transporte.send(mens); } catch (AddressException ex) { ex.printStackTrace(); return false; } catch (SendFailedException ex) { ex.printStackTrace(); return false; } catch (MessagingException ex) { ex.printStackTrace(); return false; } catch (Exception ex) { ex.printStackTrace(); return false; } return true; }