I feel your pain.
Some user just stubbornly don't accept that they got the wrong email address.
For such normal use case, I use Amazon SES as my transactional email sender.
They deliver bounce reports in various channel (including HTTP) via their SNS service.
See more info about it here:
Once you got the bounce report, which contains the email address, you'll know that the email does not exist.
This works great in every project I encountered so far. It has a little acceptable limitation though, you can't tell unless you try sending an email.
If you design your application in a way that users can resend confirmation emails. You'll able to provide a nice and friendly notice there.