2010-03-15 1 views
1

Я использую регистрацию и подтверждение по электронной почте в своем проекте (да, я знаю об OpenID. В моей стране не хватает главной службы электронной почты).Как проверить электронную почту с орфографической ошибкой при регистрации пользователя

Иногда пользователи пропускают свои адреса электронной почты. Я знаю об этом из-за того, что письма не были доставлены в почтовый ящик. Ошибочный адрес абсолютно правильный, потому что я проверяю его с регулярным выражением - скажем, jon .doe @ example.com intestead of john .doe @ example.com. И я не хочу дублировать поле электронной почты в регистрационной форме (кому это нравится?).

Процедура обработки запроса не может ждать доставки электронной почты - это может занять непредсказуемое время. Итак, мой скрипт вернет пользователю сообщение с подтверждением «Было отправлено электронное письмо». И пользователь будет ждать его навсегда (причина, а не - он/она превратится в альтернативный проект с более совершенной системой регистрации).

Кто-нибудь знает, как его можно улучшить (на любом языке программирования)?

ответ

2

Если вы не можете ждать ответа назад от подтверждение по электронной почте, я показал бы да/нет окна сообщения, подтверждающие их электронную почту (т.е. Отправить по электронной почте на [email protected]?) перед отправкой по электронной почте. Пока вы на нем, вы можете проверить, является ли электронное письмо дубликатом.

Если дубликат не найден, нажмите «Да» , затем отправьте электронное письмо. Если нет, попросите их повторно ввести адрес электронной почты.

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

+0

Жирным шрифтом это намного лучше :) – Nulldevice

+0

Курсив не подчеркивал достаточно;) –

1

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

1

Вы можете попробовать SMTP VRFY на сервере, но большинство не ответит ни с чем ценным. Большинство из них просто скажут «идти вперед и попробовать», потому что возвращение чего-то полезного было бы бесценным для спамеров.

+0

Спасибо, я проверю это. – Nulldevice

1

Вы всегда можете проверить доменное имя с помощью DNS-поиска, но единственный способ проверить адрес электронной почты - отправить сообщение.

Попробуйте дважды ввести адрес электронной почты с полем подтверждения по электронной почте (как для пароля).

EDIT: Идея Энтони тоже хороша.

+0

Вам нравятся сайты, которые просят ввести адрес электронной почты и пароль дважды? – Nulldevice

+0

Я думаю, что это довольно приличное решение проблемы, если вы действительно обеспокоены тем, что значение правильное. Просто имейте в виду, что многие люди, вероятно, вырезают и вставляют первое значение во второе поле. Вы можете подумать о том, чтобы сделать второе поле дополнительным, с надписью типа «Если вы наберете свой адрес электронной почты вторым типом, мы можем проверить случайные типографские ошибки. Это не требуется». –

0

Для пользовательских частей электронной почты единственное, что я могу вспомнить, используя:

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

Что касается домена части электронной почты, посмотрите на это:

AngularJs directive to offer suggestions for misspelled emails?

Это помогло мне уменьшить отскок для опечаток как gmai.com и gmail.con.