Esta classe viola o princípio da responsabilidade única porque tem muitas responsabilidades.
Salvar os dados, por exemplo, pode ser implementado por outra classe, e até mesmo outra camada, que faça somente isso.
Envio de e-mail é outra funcionalidade que, além de depender de serviços externos (servidor SMTP, por exemplo), não tem nada a ver com o objeto de um modelo de domínio que é: definir os dados e comportamentos de acordo com as regras de negócio.