Pull to refresh

Comments 31

> И если таких элементов более одного — домен валиден.
Неверное утверждение. Во-первых, сервис может крутиться в локальной сети. test@local или что-то вроде.
Во-вторых — вспоминается приватная сокращалка урлов, висевшая на домене http://to.. Вполне может быть, что там висит и e-mail.
Во первых, мы же не будем отправлять почту на test@local? да и для этого есть lvh.me
Во вторых… а приведите пожалуйста пример.
Разработчики библиотеки agsxmpp и пары irc-клиентов тоже так думали.
Про сокращатель ссылкок на to. была статья на хабре, после чего его приватным и сделали.
Примера не приведу, нет времени гуглить, да и не уверен, что найду. Но гипотетически это возможно )
К тому же ICANN начала выдавать доменные имена частным компаниям. Ждите пользователей с доменом типа @canon.

Вообще — статья, хм, важная в этом вопросе, кто-то не будет писать лишний костыль в ненужном месте. Но вот само утверждение — вводит в заблуждение.
Спасибо за информацию, но я пока буду придерживаться своего заблуждения.
Это пока не стандарт. А поскольку ruby — динамичная среда, то своевременные изменения в gem 'mail' будут внесены. От этой библиотеки слишком многое зависит.
Я бы не стал беспокоится.
Недавно тут пробегал перевод одной статьи, вывод в которой мне очень понравился: «Просто пошлите пользователю письмо». habrahabr.ru/post/175375/

Это позволит не только проверить валидность e-mail, но также чудесным образом проверит принадлежность e-mail конкретному пользователю.
Это две разные процедуры и одна другую не исключает. Но если вы будете часто-часто отправлять письма на инвалидные адреа, то вас могут забанить.
Не поддерживается IDN.

1.rb:
# -*- encoding : utf-8 -*-

require 'mail'

Mail::Address.new('info@регистратор.рф')


/usr/local/rvm/gems/ruby-1.9.3-p194/gems/mail-2.5.4/lib/mail/elements/address_list.rb:29:in `initialize': Mail::AddressListsParser can not parse |info@регистратор.рф| (Mail::Field::ParseError)
Reason was: Expected one of
, (, !, #, $, %, &, ', *, +, -, /, =, ?, ^, _, `, {, |, }, ~, ", ., @, :, <, [ at line 1, column 6 (byte 6) after @
	from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/mail-2.5.4/lib/mail/elements/address.rb:181:in `new'
	from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/mail-2.5.4/lib/mail/elements/address.rb:181:in `parse'
	from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/mail-2.5.4/lib/mail/elements/address.rb:32:in `initialize'
	from 1.rb:5:in `new'
	from 1.rb:5:in `<main>'

Gmail тоже не считает этот адрес верным. Уже принят стандарт на адреса электронной почты с кириллицей?
A protocol is currently being developed to permit the internationalization of all parts of an e-mail address and for all e-mail headers.
Тогда согласен, ваш метод пока работает. Хотя ограничение на две части доменного имени все равно излишне ;)
Во первых, ни то ни другое не принято.
Во вторых, покажите мне хоть один работающий имейл с одной частью от доменного имени.
В третьих, поправьте у себя, если вы имеете другое мнение.
Отправьте мне пожалуйста письмо на этот адрес.
1-й показатель валидности: в адресе есть ровно одна @
2-й показатель валидности: пользователь нажал на ссылку в пришедшем письме

Зачем что-то большее?
Затем, что не нужно выделять ресурсы на формирование и отправку письма на несуществующий адрес. Не нужно обрабатывать исключения кидаемые почтовым клиентом при отправке писем на инвалидные адреса.
Видимо имелось ввиду
A@b@c@example.com (only one @ is allowed outside quotation marks)
Предлагаю использовать для логина только email.

Вот там как раз неподалеку была статья про SOPPA, которая как раз запрещает так делать, если нет гарантии, что пользователю есть 13 лет :)
Поясните, я не успеваю все читать :)
Должен ли я следовать COPPA?
У нас тут синтаксическое дерево, природа и свойства которого, для меня, чуть менее чем полностью непостижимы. Знаю только то, что синтаксическое дерево, в отличии от регекспа не рекурсивно по своей природе.
Лажа, АСТ в общем случае рекурсивно, но может быть нерекурсивно в частных случаях.
Это же дерево не граф, обработка дерева может быть рекурсивной, а не само дерево.
AST — это дерево. Дерево можно определить так: Tree a = Empty | Node a (Tree a) (Tree a). И где оно нерекурсивно?
А что означает эта ваша запись?
AST — конечное, помеченное, ориентированное дерево
Дерево — это связный ациклический граф. Связность означает наличие путей между любой парой вершин, ацикличность — отсутствие циклов и то, что между парами вершин имеется только по одному пути.
В википедии неправильно?
А так я конечно могу ссылок намешать так что ацикличность сохраняться не будет. Но тогда эта утка перестанет крякать.
А что означает эта ваша запись?
Простое определение бинарного дерева. Читать: дерево вершин типа a — пустое дерево либо вершина, содержащая значение типа a и два дерева типа a

Дерево — это связный ациклический граф.
Да, и?
Связность означает наличие путей между любой парой вершин, ацикличность — отсутствие циклов и то, что между парами вершин имеется только по одному пути.
Нет. Ацикличность — отсутствие циклов, она не запрещает наличия более одного пути между вершинами. Graph { a->b, a->c, b->d, c->d } является DAG, но не является деревом.

В википедии неправильно?
Запросто.

Вернёмся к AST, возьмём какую-нибудь нетривиальную грамматику (например, порождаемую rfc2822):
ccontent = ctext / quoted-pair / comment
comment = "(" *([FWS] ccontent) [FWS] ")"

Очевидно, что данная грамматика рекурсивна, и AST на её основе тоже будет таковым.
Я, простите, не все понял из ваших примеров. Буду следовать википедиевскому заблуждению: для моего дерева между вершинами только один путь, иначе я перестаю с таким деревом работать как с деревом. С деревьями я привык работать без рекурсий. Ваш пример Graph { a->b, a->c, b->d, c->d } я деревом не считаю, в случае с множественными родителями я теряю приемы и алгоритмы нерекурсивной обработки деревьев: nested sets например.
Ваш пример Graph { a->b, a->c, b->d, c->d } я деревом не считаю
вы до слов «является DAG, но не является деревом» дочитали или нет?

Смысла спорить не вижу, вы не читаете ответы. За сим откланиваюсь.
Ну у вас были все шансы меня запутать, вы же очевидно больше о графах знаете чем я. Ну виновен ладно, плохо читаю сложные комментарии. Только вот ничего не изменилось. AST все еще дерево. Вообще плохо тогда представляю зачем вы инициировали этот спор, если точку зрения доносить не планируете.
Only those users with full accounts are able to leave comments. Log in, please.