Armazena uma instancia de um objeto que implementa a interface EmailService
Métodos
void setEmailService(EmailService emailService)
boolean isValidAddress(String emailAddress)
Um endereço é considerado válido se possuir usuário válido, seguido pelo caracterae arroba (@) e posteriormente um domínio válido.
boolean isValidEmail(Email email)
É considerado válido o email que possuir um creationDate, um destinatário (to) válido, ao menos um emissor (from) válido e os demais e-mails também sejam válidos
Collection<Email> emailList(EmailAccount account)
Antes de obter emails verificar se password é válido (password é valido se maior que 6 caracteres e lastPasswordUpdate menor ou igual a 90 dias)
Se password inválido levantar uma exeção do tipo RuntimeException
Chamar emailService.emailList(account)
void sendEmail(Email email)
verifica se o email é válido (utilizando o método isValidEmail)
chamar emailService.sendEmail(Email email)
Se retorno false levantar uma exeção do tipo RuntimeException