By default all new registrants for my site are assigned the role "contributor" and then I make them request an upgrade to an "author" account through a form. I also send out invitations to certain people to join the site in which I want them to automatically register as an "author" so they can skip the application process.
Now my first thought was to send out some type of key code in the email and have them enter it in on a registration page but that seems like a lot of hassle. What I'd like to do instead is send them a link to a registration page that signs them up under the "author" role. But I also have issues with that approach in that I would need the link to only work when accessed by that email address it was sent too.
I know this is a vague question but I'm looking for a solid solution for what I want to do.