This question already has an answer here:
For a registration page, what's the best way to verify a user's email address? Some websites ask you for the username, password and email address all on the registration form and then email you a link which when clicked simply displays "you are now verified". However, I came across a site which had a registration system where they asked for only your email address; they then sent an email with a link to a page where you can then choose your username and password.
The benefits of the first method is that there's just one form that the user has to fill in and once they've done that, all they have to do is click a link.
The benefits of the second method is that the form appears less daunting since there's only one field. Also, it rules out the chance of a user entering a username with an incorrect email address, so they have to choose a different username because the original username is now taken.
What's the best way to ensure that a user's email address is valid?