I don’t like creating new accounts with my real email address, because:
- I don’t want to be automatically subscribed to newsletters. This is annoying and happens very frequently, often without the offending site asking if I want to receiver their newsletter.
- The more databases my email is in, the more likely hackers get it and sell it to spammers.
To avoid using my real email address for websites where I want to do low-priority stuff I have a process for generating a temporary public email address using mailinator, maildrop.cc, or similar providers. These websites let you go to a static public URL to view an inbox for any email account on the domain, for example if I go to https://mailinator.com/inbox.jsp?to=foo I will see all email recently sent to
email@example.com. This is super useful, because now I can register accounts that are in no way tied to me personally.
To pick unique email address, username, password and first/last names I use a few Python scripts. This is the script I use to generate passwords:
import random, string chars = string.lowercase + string.uppercase + string.digits print(''.join(random.choice(chars) for i in range(10)))
This can also be used to generate an email address. For example, if I run the script to get a random string:
$ python genpass.py rcEf21llGs
I can use
rcEf21llGs@mailinator.com as the email address for my new account. I also generate a separate random string for the password. Some sites have banned accounts from using
@mailinator.com email addresses, so then I use maildrop.cc or another similar site.
To generate username and first/last name I use another script called
import string from random import choice prefix = [ 'Dr', 'Captain', 'Mr', 'Ms', 'Big', 'The', 'Not' ] first = [ 'Happy', 'Crappy', 'Flappy', 'Jiggly', 'Wobbly', 'Neat', 'Freaky', 'Honking', 'Prickly', 'Picky', 'Pixly', 'Random', 'Sick', 'Slippery', 'Slim', 'Shady', 'Wily' ] last = [ 'Pants', 'Dog', 'Cat', 'Bird', 'Bag', 'Toe', 'Waffle', 'Truck', 'Jeep', 'Beep', 'Boop', 'Phony', 'Puff', 'Rocket', 'Panda', 'Hat', 'Boy', 'Girl', 'Crunch', 'Bee', 'Morty', 'Rick', 'Biggles' ] for i in range(10): print(''.join([ choice([ '', choice(prefix) ]), choice(first), choice(last) ]))
The name generating script uses word lists for parts of a name, and picks randomly one first-part and one last-part. It also picks one prefix for half of the generated names. It prints ten names so that I have some alternatives to pick from and can pick one that I like. The word lists here have been shortened, my real lists are much longer so that I get more variety in the generated names.
Here are some names generated by the above script:
$ python namegen.py BigJigglyMorty NeatBeep CaptainSickTruck PickyBeep DrRandomRocket BigWilyTruck CrappyJeep TheHonkingPuff CaptainSickPanda CaptainFreakyToe
I use this process to sign up for online news sites, forums, and sometimes just to try out new services or APIs that require registration. This method is obviously not secure, because the email inbox is public and anyone can hijack your temporary account if they figure out your email and do a password recovery, so I use this method mostly for truly temporary accounts. I do use the password script to generate passwords for most of regular my accounts too because I want to avoid reusing passwords.