The only way to correctly validate an email address is to send a message to it, and verify that it arrived.
If you're accepting email addresses as user input (e.g. from a web form), it might be nice to check that what's to the right of the rightmost @ sign is a domain name with an MX or A record. That way, if a user enters a typo'd address, you have some chance of telling them that instead of handing an email to user#example.net or user@gmailc.om to your MTA.
But the validity of the local-part (left of the rightmost @) is up to the receiving server.