There is exactly one right way to validate an email: send a message to it.
Email is a very old protocol with a lot of hacks and backwards compatibility. At this point, pretty much any string could be a valid email address. You can certainly run a bunch of tests and get a decent signal, but it's a lot of work, and if you reject an email address without testing it you're going to cause someone some trouble at some point. It's a lot easier and more accurate to just accept the string and try to send email to it.