To check if the email address's domain name is valid (i.e., the part after @), you could use nslookup on *nix systems, call it in a Python subprocess.
You could also check the string you get against the official email Regex.
Put together; those two methods will tell you if the email is syntactically correct and with a valid domain. Which is often not enough...
To do full email validation, you're forced to use an external API that offers this service. A lot of email verifiers will pop up if you google for it.
Of course, the most robust way to go, and the only one that guarantees the email is valid AND is owned by the user, is to send a verification email with a link inside for your user to verify its email.