Является ли электронная почта @"happy@guy.com" действительным адресом электронной почты?

Этот комментарий привел меня к RFC 5322 § 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. 

The locally interpreted string is either a quoted-string or a dot-atom.

If the string can be represented as a dot-atom (that is, it contains no
characters other than atext characters or "." surrounded by atext  
characters), then the dot-atom form SHOULD be used and the quoted-  
string form SHOULD NOT be used.  Comments and folding white space   
SHOULD NOT be used around the "@" in the addr-spec.

И мы можем видеть, что atext здесь

atext           =       ALPHA / DIGIT / ; Any character except controls,
                        "!" / "#" /     ;  SP, and specials.
                        "$" / "%" /     ;  Used for atoms
                        "&" / "'" /
                        "*" / "+" /
                        "-" / "/" /
                        "=" / "?" /
                        "^" / "_" /
                        "`" / "{" /
                        "|" / "}" /
                        "~"

Собрать все это вместе, значит ли это, что адрес электронной почты email@"happy@guy.com" на самом деле является действительным адресом, так как кавычки позволяют использовать @ условное обозначение?

2 ответа

Нет, это не действительно.

Часть после @ это домен ("happy@guy.com" в вашем примере).

Вы не можете иметь доменное имя с @ символ в.

Каковы допустимые символы для доменного имени и как долго это может быть?

Также проверьте RFC 1035 2.3.1:

Они должны начинаться с буквы, заканчиваться буквой или цифрой и содержать в качестве внутренних символов только буквы, цифры и дефис.

Больше информации:

Правила для электронных писем настолько ошеломительно сложны (и редко соблюдаются совершенно правильно), что вопрос о том, является ли электронное письмо действительным, не особенно полезен. Скорее, это вопрос того, сколько веб-сайтов примут вашу электронную почту. Чем более экзотичен адрес электронной почты, тем больше вероятность того, что вы столкнетесь с сайтами, которые его не принимают, даже если он соответствует стандарту RFC. Например, my.email@com технически это действительное электронное письмо, но вам будет трудно его использовать.

Если вы конечный пользователь, это означает, что вы, как правило, должны выбирать электронные письма, которые не становятся слишком креативными, независимо от того, можете ли вы. Получение электронного письма, которое выдвигает правила, может затруднить использование некоторых веб-сайтов, даже если это технически допустимо.

Если вы работаете с программным обеспечением и вам необходимо проверить электронную почту пользователя, лучше всего отправить ему электронное письмо с подтверждением. Таким образом, вы сможете проверить, действительно ли существует адрес электронной почты пользователя, не беспокоясь о случайной блокировке пользователей, чья электронная почта не соответствует стандартам RFC или чья электронная почта соответствует правилам пограничного условия. (Стоит использовать некоторые правила здравого смысла для проверки на стороне клиента, чтобы помочь пользователям исправить опечатки, но вы должны позволить пользователям переопределить эту проверку, если это необходимо.)

Этот вопрос от StackOverflow обсуждает проблемы довольно хорошо. Что бы ни стоило, этот веб-сайт позволяет вам проверить, действительно ли электронные письма действительны. Второй комментарий на странице приводит пример человека с действительным адресом электронной почты, который трудно использовать из-за его необычности.


Чтобы ответить на ваш оригинальный вопрос: нет, email@"happy@guy.com" не является действительным адресом электронной почты. Но даже если бы это было так, я бы предостерег от его использования, и если пользователь заявляет, что это его электронное письмо, вы все равно должны отправить ему электронное письмо с подтверждением.

Другие вопросы по тегам