There are many spam/trash mailers out there (www.spam.la), that allow you to receive mails to any address. Therefore I suggest not to rely on a "valid" email in the usual sense. Maybe OpenID is an option? For just checking for a "valid" format you can maybe make use of existing functionality like filter_var()/FILTER_VALIDATE_EMAIL.