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