em linhas gerais, o caminho feliz é algo como:

  • gera um token e salva no banco
  • envia um email via (por ex) sendgrid para o email cadastrado
  • no email coloca um link que leva para site.com.br/confirmar-email/{TOKEN}
  • no controller vc pega o token do endereço, verifica no banco e marca o email como confirmado

Fiz algo parecido. Peguei o email, criptografei No banco coloco o user como não ativo

no email coloquei um link que leva para site.com.br/confirmar-email/{email criptografado}

Quando a pessoa clica nele o sistem pega o token descriptografa vê no banco de dados se o email que veio combina com algum email do banco. Se sim, ele libera colocando um ativo no banco de dados! Se o email já esta liberado ele manda uma mensagem!

Outra forma de fazer:

Colocam uma imagem(com um link especial que vai ter algo para confirmar) no email e quando a pessoa abre o email o link da imagem carrega e o email ta confirmado imediatamente que existe e a flag no banco muda! Mesma tecnica para saber se um email foi aberto. Aqui mostra um jeito https://www.youtube.com/watch?v=_nlufzc57lI

Abraços

muito obrigado mano, tava precisando kkkkkkkkk