You can connect to the server, and issue a VRFY command. Very few servers support this command, but it is intended exactly that. If the server responds with a DSN 2.0.0, there is the user.
VRFY user
You can send a RCPT, and see if the email is rejected.
MAIL FROM:<>
RCPT TO:<user@domain>
If the user does not exist, you will get a DSN 5.1.1. However, just because the email is not rejected does not mean that the user exists. Some server will silently discard requests like this to avoid enumerating its users. Other servers cannot check the user, and have to accept the message independently.
There is no way to be sure that an email exists or not, at most test if it has an arroba and a point at least after the arroba. Almost any extra test will mess up possible valid emails (it is full of form and web tutorial that teaches validate in the wrong way). Also, without sending something, you will definitely not know if the email exists. You can even use two password type fields forcing the user to type twice if it’s really important, but it gets a little weird.
– Bacco
I was thinking of creating a new email confirmation field. Anyway, can’t you do something, send some test and return? Type that site http://verify-email.org/
– Felipe Viero Goulart
These tests are based on the server of the other party "snitching" whether the account exists or not. The problem is that in some situations, the server accepts qq thing and discards later. Also, if the domain in question has an "all pope" account, you will get a valid email, but you may be going to the wrong person.
– Bacco