Explicando a requisição feita
Atualizado
Atualizado
Se você olhar na estrutura do projeto acima, temos:
EmailController, com a função sendEmail, recebendo um EmailDTO (retorna noContent e void).
EmailDTO, obviamente, possui a estrutura da requisição Postman anterior com as anotações @Email, @NotBlank.
No service, temos a função recebendo um EmailDTO fazendo um try-catch.
O bacana do service é que ele pega o username do properties:
Depois, injetamos o componente chamado JavaMailSender (da biblioteca spring mail). Esse JavaMailSender, pega as configurações do properties também: port, host, etc.
Destacando que tem que criar também o ExceptionHandler no pacote do Controller para tratar essa exceção acima.