Email addresses have strict requirements on what are valid characters. Of course, there are some useful non-alphanumeric ones in this list. You will often see a period in the middle as a separator, for example tim.joransen@mailinator.com (which is the same as /dev/null).
GMail has a nice feature where you can take your username and add “+xyzzy” and you will still get the note. With this extra information, you can apply filters, rules, etc. When I signup for sites that I’m not sure won’t just turn into a SPAM source, I add “+siteabbreviation” so if I get too many postings, I can learn the source.
I used to do the same thing in the physical postal world. I would add a second address line that was a mail stop. Something like “MS: 341A.” I had a list of these I kept. It let me track who was sharing or selling my contact info and has occasionally been interesting.
But there is a problem. Not every web developer out there knows what the valid characters are for email addresses. They write code that doesn’t allow this. When it happens at registration, I get annoyed, but then move on (usually using an email account I use less).
Today I’m annoyed and the problem will persist. Papa John’s let me sign up with the “name+papajohns@gmail.com” but their email unsubscribe system doesn’t let it work. It won’t match the unsubscribe link to my email address. My solution? Train my mail server/client that Papa Johns email is SPAM. Not ideal, but I have choice in my pizza provider and this is a big deal for me.
Note: this is about SMTP addresses, other mail systems had/have different notations, but since SMTP is how email flows on the Internet, that is all that really matters. You can read more on Wikipedia’s email address entry.