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"); } }
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; } }