MailAddress с одинарными кавычками

Возможный дубликат:
Какие символы разрешены в адрес электронной почты?

В C # я не знаю, почему MailAddress принимает адрес электронной почты с одинарными кавычками, например 'a''a'@gmail.com ... Я также тестировал его на веб-сайтах Hotmail и Gmail, и они позволили мне отправить электронное письмо на этот неправильный адрес электронной почты, но, конечно же, позже я получу сообщение об ошибке ... даже если во время регистрации это не 'Не разрешать новые электронные письма с одинарными кавычками _2 _... Знаете ли вы действующий адрес электронной почты с одинарными кавычками? это действительный формат?

извините, я имею в виду одинарные кавычки


person Jaider    schedule 09.07.2012    source источник
comment
Вы имеете в виду точку с запятой (;) или апостроф (')?   -  person Mike Christensen    schedule 10.07.2012
comment
Вы спросили, почему в адресах электронной почты разрешена точка с запятой (;), но в ваших примерах этот символ отсутствует. Этот вопрос не по теме форума, если вы не можете перефразировать его как ошибку кодирования. В адресах электронной почты действительны как точка с запятой, так и апостроф. См. en.wikipedia.org/wiki/Email_address.   -  person Miserable Variable    schedule 10.07.2012
comment
@MiserableVariable Я не знал, что эти символы действительны в адресах электронной почты ... большинство шаблонов электронной почты Regex неверны. Я думал использовать проверку Regex до создания MailAddress, но на стороне сервера в этом нет необходимости. (возможно, нам нужна гибкая проверка электронной почты на стороне клиента). Спасибо за все, ссылка на Википедию действительно хороша.   -  person Jaider    schedule 11.07.2012
comment
Проверить адреса электронной почты чрезвычайно сложно. ТАК преобразовал мой ответ в комментарий, я постараюсь восстановить и добавить исходный текст; пожалуйста, примите его, если вы считаете, что я ответил на ваш вопрос.   -  person Miserable Variable    schedule 12.07.2012


Ответы (2)


Я бы посоветовал вам, почему бы вам не подтвердить свой адрес электронной почты, прежде чем отправлять электронное письмо

Таким образом, вы сразу же получите обратную связь, что является действительным адресом электронной почты.

Не самый лучший способ сделать это, но вы используете класс MailAddress следующим образом

MailAddress mailAddress = null;

    try
    {
       mailAddress = new MailAddress("a'@gmail.com");//email address with single quote in it
    }
    catch(Exception exception)
    {
      //If emailAdress is not correct then warn user
    }
person HatSoft    schedule 09.07.2012
comment
Электронное письмо типа: "<script>alert('XSS vulnerable')</script>"@a.com вызовет XSS - person Jaider; 17.08.2012
comment
@Jaider в своем ответе я предлагаю проверить адрес электронной почты с помощью MailAddress, поэтому не вижу, как это может вызвать XSS - person HatSoft; 18.08.2012

Согласно RFC 2822, раздел 3.2.4, одинарные кавычки разрешены в адресах электронной почты (см. как определяется текст):

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

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

person Efran Cobisi    schedule 10.07.2012