надо сформировать ссылку по которой ты точно определишь чтобы это письмо послал ты пользователь получает письмо с такой ссылкой переходит по ней (тут ты убеждаешься что мыло валидно) дальше деллаешь что нужно
ты можешь сделать служебную таблицу при запросе на смену мыла туда заносишь кто на какое мыло меняет и уникальный многобуквенный хеш хеш используется в ссылке
но нему же определишь какой пользователь
когда происходит переход меняешь мыло из служебной таблицы в таблицу юзера