Do all valid emails contain at least one @ symbol?
Yes, per RFC5322, every email address must have one at-sign, given the basic format of [email protected]
...
An addr-spec is a specific Internet identifier that contains a locally interpreted string followed by the at-sign character ("@", ASCII value 64) followed by an Internet domain.
But make sure not to validate for only one at-sign, because it's possible for an e-mail address to have several. After all, there are other RFCs!
RFC2822 gave us the ability to use quoted-strings in e-mail addresses...
3.2.2. Quoted characters
Some characters are reserved for special interpretation, such as delimiting lexical tokens. To permit use of these characters as uninterpreted data, a quoting mechanism is provided.
quoted-pair = ("" text) / obs-qp
So "@"@gmail.com
is a valid email address.
Don't forget about RFC5321, either! This defines another basic procedure for having as many @
signs as you want in your email address...
Note that the backslash, "\", is a quote character, which is used to indicate that the next character is to be used literally (instead of its normal interpretation). For example, "Joe\,Smith" indicates a single nine-character user name string with the comma being the fourth character of that string.
So, then, \@@gmail.com
is also a technically-valid email address.
As defined in RFC5322, section 3.4.1:
An addr-spec is a specific Internet identifier that contains a locally interpreted string followed by the at-sign character ("@", ASCII value 64) followed by an Internet domain.
https://www.rfc-editor.org/rfc/rfc5322
All valid email addresses contain the @ symbol. You can read the Internet Message Format standard for more information: https://www.rfc-editor.org/rfc/rfc5322
Specifically 3.4.1. Addr-spec specification: https://www.rfc-editor.org/rfc/rfc2822#section-3.4.1
As per RFC5322:
An addr-spec is a specific Internet identifier that contains a locally interpreted string followed by the at-sign character ("@", ASCII value 64) followed by an Internet domain.
So, yes, all email addresses must have the @
character.
Prior to the internet taking over the world, it was possible for email addresses to have other formats, like the FidoNet mail address 1:170/918.10
, user number 10 at FidoNet node 1:170/918
.
But given the ratio of internet users to FidoNet users currently stands at about a gazillion or more to one, that's for historical interest only.