Является ли адрес электронной почты действительным, который проходит проверку, но возвращается? - PullRequest
2 голосов
/ 24 марта 2011

Я использую адрес Zend_Validate_EmailAddress для проверки адресов электронной почты моей почтовой программы. Проверяется в соответствии с RFC2822 - http://framework.zend.com/manual/en/zend.validate.set.html

Мой вопрос, являются ли эти действительные электронные письма, когда они проходят проверку?

test@test.co. test@test.co.za. и т.д. Обратите внимание на полную остановку в конце.

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

Привет

Ответы [ 2 ]

4 голосов
/ 24 марта 2011

Адреса электронной почты не являются «явно неправильными»;DNS-имя может заканчиваться завершающим символом ., указывающим, что оно является абсолютным, а не относительным.

[ИЗМЕНЕНО, чтобы добавить: приведенное выше может вводить в заблуждение.В адресе электронной почты, по крайней мере для SMTP, имена хостов всегда интерпретируются как полностью определенные, т. Е. «Абсолютные».Так что не нужно для конечного . в части имени хоста адреса электронной почты.Однако конечный . все еще является действительным синтаксисом имени хоста.]

0 голосов
/ 24 марта 2011

Ниже приведено регулярное выражение, рекомендуемое rfc2822:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

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

Полезные ссылки:
http://www.regular -expressions.info / email.html
http://regexpal.com/

...