Example #1
0
  public void createAndSendMail() {
    // for Mail m : MAILS
    // m.setData(dataDeCorreo)
    // otros datos
    // fecha
    // enciar
    System.out.println("SEND");
    System.out.println("Correo: " + dataDeCorreo);

    Date fechaRecibido = new Date();
    Connector.connect();

    for (Mail m : MAILSPROPIOS) {
      // setear data
      m.setBody(dataDeCorreo);
      // setear fecha
      m.setDateReceived(fechaRecibido.toString());
      m.setFrom(new User(usuarioEmisor + "@" + dominioEmisor));
      m.setSubject(dataDeCorreo.substring(0, 10));
      // almacenar en BD
      m.save();
      System.out.println("Propio");
    }

    Connector.close();

    // ahora setear data para los mails ajenos
    for (Mail m : MAILSAJENOS) {
      // setear data
      m.setBody(dataDeCorreo);
      // setear fecha
      m.setFrom(new User(usuarioEmisor + "@" + dominioEmisor));
      m.setDateReceived(fechaRecibido.toString());
      System.out.println("Ajeno");
    }
  }
Example #2
0
  public boolean processRcptTo(String data) {
    String response = "550 - ¡No existe tal usuario aca \n!";
    boolean temp;
    System.out.println("RCPT TO:");
    temp = Pattern.matches("(RCPT)\\s+(TO:?)\\s+(.)+", data);

    if (temp) {
      // extraer el correo del recipiente
      String[] correoRecipiente = data.split("\\s+");
      // el tercer elemento deberia ser el correo que envia
      String nombreRecipiente = correoRecipiente[2];

      // si coincide con formato, extraer usuario y dominio
      String usuario, dominio;
      String[] formatoTemporal = nombreRecipiente.split("@");
      usuario = formatoTemporal[0];
      dominio = formatoTemporal[1];
      System.out.println(usuario + " @ " + dominio);

      // dominio debe ser nuestro o sea @LabSMTP
      if (dominio.equals("LabSMTP")) {
        // es nuestro
        System.out.println("Correo Local");
        // verificar si existe en BD

        Connector.connect();
        DBManager dbm = new DBManager();
        User usuarioVerificar = dbm.existUser(usuario);

        if (usuarioVerificar != null) {
          usuariosPropios.add(nombreRecipiente);
          Connector.close();
          rcptOK = true; // validar que ya se tiene un usuario ok

          // agregar un nuevo mail a la lista de mails por enviar
          Mail nuevoMail = new Mail();

          User sender = new User(usuarioEmisor + "@" + dominioEmisor);

          nuevoMail.setFrom(sender);
          nuevoMail.setTo(usuarioVerificar);

          MAILSPROPIOS.add(nuevoMail);

          sendResponse("250 - Ok \n");

          return true;
        } else {
          // error ya que no existe el usuario
          sendResponse(response);
          Connector.close();
          return false;
        }
      } else {
        // no es nuestro
        System.out.println("Correo ajeno");
        // almacenar para reenvio
        usuariosAjenos.add(nombreRecipiente);

        Mail nuevoMail = new Mail();

        User sender = new User(usuarioEmisor + "@" + dominioEmisor);

        nuevoMail.setFrom(sender);
        nuevoMail.setTo(new User(nombreRecipiente));

        MAILSAJENOS.add(nuevoMail);

        rcptOK = true; // validar que ya se tiene un usuario ok aunque sea ajeno
        sendResponse("250 - Ok \n");
        return true;
      }
    } else {
      // error ya que no tiene le formato adecuado
      sendResponse("402 - ¡Correo malformado! \n");
      return false;
    }
  }