Servidor Email

Boa tarde!
Estou com duvida neste exercício no método sendReceive.
—> sendReceive: para cada CaixaPostal do vetorCaixasPostais, retira todos emails da caixaDeSaida e insere na CaixaDeEntrada da CaixaPostal referente ao destinatário de cada um destes emails.
Observação: se houver email com destinatário inválido/inexistente, este email será simplesmente ignorado (é retirado da caixaDeSaida mas não é inserido em nenhuma caixaDeEntrada)

public class Email {
private String rementente;
private String destinatario;
private String assunto;
private String corpoEmail;

public Email(String destinatario, String assunto, String corpoEmail) {
	super();
	this.destinatario = destinatario;
	this.assunto = assunto;
	this.corpoEmail = corpoEmail;
}

public String getRementente() {
	return rementente;
}

public void setRementente(String rementente) {
	this.rementente = rementente;
}

public String getDestinatario() {
	return destinatario;
}

public void setDestinatario(String destinatario) {
	this.destinatario = destinatario;
}

public String getAssunto() {
	return assunto;
}

public void setAssunto(String assunto) {
	this.assunto = assunto;
}

public String getCorpoEmail() {
	return corpoEmail;
}

public void setCorpoEmail(String corpoEmail) {
	this.corpoEmail = corpoEmail;
}

}

public class CaixaPostal {
private String remetente;
private Email[] caixaSaida = new Email[10];
private Email[] caixaEntrada = new Email[10];

public CaixaPostal(String remetente) {
	super();
	this.remetente = remetente;
}


public void send(String destinatario, String assunto, String corpoEmail) {
	
	for (int i = 0; i < caixaSaida.length; i++) {
		if(caixaSaida[i] == null) {
			caixaSaida[i] = new Email(destinatario, assunto, corpoEmail);
			break;
		}
	}
	
}


public String getRemetente() {
	return remetente;
}


public void setRemetente(String remetente) {
	this.remetente = remetente;
}


public Email[] getCaixaSaida() {
	return caixaSaida;
}


public void setCaixaSaida(Email[] caixaSaida) {
	this.caixaSaida = caixaSaida;
}


public Email[] getCaixaEntrada() {
	return caixaEntrada;
}


public void setCaixaEntrada(Email[] caixaEntrada) {
	this.caixaEntrada = caixaEntrada;
}

}

public class Servidor {
private CaixaPostal[] caixaPostal = new CaixaPostal[5];

public void add(CaixaPostal cp) {
	try {
		for (int i = 0; i < caixaPostal.length; i++) {
			if(caixaPostal[i] == null) {
				caixaPostal[i] = cp;
				break;
			}
		}
		

	} catch (IllegalArgumentException e) {
		System.out.println("Valor informado é invalido");
	}
}

public void sendReceive() {
	for (int i = 0; i < caixaPostal.length; i++) {
		if(caixaPostal[i] != null) {
			for (int j = 0; j < caixaPostal[i].getCaixaSaida().length; j++) {
				if(caixaPostal[i].getCaixaSaida()[j] != null && caixaPostal[i].getCaixaSaida()[j].getDestinatario().equalsIgnoreCase(caixaPostal[i].getRemetente())) {

Cheguei até aqui e não sei oq fazer kkk
}
}
}

	}
}

}

acho que isso pode ser testado antes assim:

public void send(String destinatario, String assunto, String corpoEmail) throws Exception {
        if (destinatario == null || destinatario.isEmpty()) {
            throw new Exception("Falta destinatário");
        } else if (assunto == null || assunto.isEmpty()) {
            throw new Exception("Falta assunto");
        } else if (corpoEmail == null || corpoEmail.isEmpty()) {
            throw new Exception("Falta corpo do email");
        }

        if (!testeEmail(destinatario)) {
            throw new Exception("Destinatário invalido");
        }

        for (int i = 0; i < caixaSaida.length; i++) {
            if (caixaSaida[i] == null) {
                caixaSaida[i] = new Email(destinatario, assunto, corpoEmail);
                break;
            }
        }
    }

public boolean testeEmail(String email) throws Exception {
        if(email == null || email.isEmpty()){
            throw new Exception("Falta email");
        }

        Pattern p = Pattern.compile("^.+\\@.+\\..+$");

        return p.matcher(email).matches();
    }

a função testeEmail() vc pode usar até pro remetente se vc quiser