/**
   * Adapto el mail a un mensaje
   *
   * @return El mensaje
   * @throws MessagingException
   */
  public Mensaje adaptarMail() throws MessagingException {

    Mensaje nuevoMensaje = new Mensaje();
    Address[] arregloDeDirrecciones = this.mensajesMail.getAllRecipients();

    nuevoMensaje.setAsunto(this.mensajesMail.getSubject());
    nuevoMensaje.setDe(((InternetAddress) this.mensajesMail.getFrom()[0]).getAddress());

    for (int i = 0; i < arregloDeDirrecciones.length; i++) {
      nuevoMensaje.agregarPara(arregloDeDirrecciones[i].toString());
    }

    analizaParteDeMensaje(this.mensajesMail, nuevoMensaje);
    // REALIZO LA ADAPTACION DEL MENSAJE

    return nuevoMensaje;
  }
  private void analizaParteDeMensaje(Part unaParte, Mensaje myMensaje) {
    try {
      // Si es multipart, se analiza cada una de sus partes recursivamente.
      if (unaParte.isMimeType("multipart/*")) {
        Multipart multi;
        multi = (Multipart) unaParte.getContent();

        for (int j = 0; j < multi.getCount(); j++) {
          analizaParteDeMensaje(multi.getBodyPart(j), myMensaje);
        }

      } else {
        // Si es texto, se escribe el texto.
        if (unaParte.isMimeType("text/*")) {
          myMensaje.agregarTextoPlano((String) unaParte.getContent());
        } else {
          salvaUnFichero(unaParte, myMensaje);
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  private void salvaUnFichero(Part unaParte, Mensaje myMensaje) throws MailException {

    FileOutputStream fichero;
    try {
      fichero = new FileOutputStream("./" + unaParte.getFileName());
      // TODO VER EL TEMA DE CAMBIAR LA UBICACION DEL PATH
      myMensaje.agregarPathAdjunto("./" + unaParte.getFileName());

      InputStream imagen = unaParte.getInputStream();
      byte[] bytes = new byte[1000];
      int leidos = 0;

      while ((leidos = imagen.read(bytes)) > 0) {
        fichero.write(bytes, 0, leidos);
      }
    } catch (FileNotFoundException e) {
      throw new MailException("Archivo no encontrado", e);
    } catch (MessagingException e) {
      throw new MailException("Archivo no encontrado", e);
    } catch (IOException e) {
      throw new MailException("Error al escribir", e);
    }
  }