Java: как я могу проверить адрес электронной почты, чтобы быть действительным, не отправляя подтверждение по электронной почте? - PullRequest
7 голосов
/ 01 марта 2010

когда люди регистрируются на моем сайте, я не хочу отправлять им письмо с подтверждением, я просто хочу проверить, существует ли это письмо. Есть ли способ сделать такую ​​вещь?

с использованием apache-tomcat и java в качестве основного языка программирования.

Большое спасибо!

Ответы [ 9 ]

17 голосов
/ 01 марта 2010

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

9 голосов
/ 01 марта 2010

Вы можете в большинстве случаев использовать regex , чтобы проверить, является ли адрес синтаксически действительным, и / или найти MX записи , если домен действителен, но это все еще не гарантирует, что адрес электронной почты является законным и принадлежит соответствующему владельцу регистрации. На самом деле нет более надежного способа, чем отправить письмо с подтверждением и ждать подтверждения в течение короткого промежутка времени.

6 голосов
/ 01 марта 2010

Я просто хотел взвесить и сказать, что, несмотря на ваше нежелание сделать это, ПОЖАЛУЙСТА, отправьте электронное письмо и заставьте пользователя подтвердить, что он контролирует его, прежде чем разрешить использовать этот адрес электронной почты вместе с учетной записью на вашем сайт. Зачем? Потому что не делать этого по любой причине означает, что пользователи могут регистрировать учетные записи, используя чужие адреса электронной почты. Они могут сделать это случайно, или они могут сделать это очень нарочно (например, подписать других на учетные записи по ряду причин); это просто не кошерно, и веб-сайты, которые позволяют это, открыты для сообщения их провайдерам.

(Я говорю это как владелец учетной записи Gmail, которая, по крайней мере, два-три раза в месяц, регистрируется для учетной записи на каком-либо веб-сайте, которая не вынуждает пользователей подтверждать свои адреса электронной почты таким образом. Это раздражает, и это возлагает на me ответственность за удаление учетной записи с сайта-нарушителя. Теперь я взял на себя восстановление любых паролей, которые я могу, войдя в учетную запись, а затем изменив адрес электронной почты на " UNKNOWN@gmail.com "или что-то в этом роде ... это немного забавно, но я сомневаюсь, что вы хотите, чтобы это произошло на вашем веб-сайте.)

5 голосов
/ 01 марта 2010

вопреки некоторым необразованным ответам, вы можете ПОПРОБОВАТЬ и подключиться к серверу MX и использовать команду VRFY, чтобы проверить, поддерживает ли сервер это. Вот веб-сайт , который сделает это для вас в качестве примера. Если вы посмотрите на его обмен с сервером MX, он на самом деле пытается отправить электронное письмо, но выполняет СБРОС перед его отправкой. Тестирование с моим адресом электронной почты работает, но я не получаю письмо. Так что да, вы МОЖЕТЕ делать то, что все остальные говорят, что вы не можете делать. Используйте адрес, который, как вы знаете, работает для вашего домена, а затем используйте тот, который вам не поддерживается. Вы получите 550 по последней команде RCTP TO. Вот откуда ты знаешь, что его не существует.

3 голосов
/ 01 марта 2010

На этот вопрос уже был дан ответ в предыдущих вопросах. Без подтверждающего электронного письма лучшее, что вы можете сделать, - это посмотреть адрес электронной почты и посмотреть, кажется ли он действительным. Вы также можете проверить такие вещи, как домен, чтобы увидеть, если он существует и имеет записи MX. В любом случае см. https://stackoverflow.com/questions/3232/how-far-should-one-take-e-mail-address-validation и Использование регулярного выражения для проверки адреса электронной почты

1 голос
/ 01 марта 2010

Вы можете использовать сервис openid для проверки действительных адресов электронной почты, как это делает stackoverflow.

http://openid.net/

1 голос
/ 01 марта 2010
1 голос
/ 01 марта 2010

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

0 голосов
/ 01 июня 2015

Службы проверки электронной почты очень полезны при проверке адреса электронной почты. Большинство из них выполняет 6 уровней проверки, таких как проверка синтаксиса, проверка записи MX домена, обнаружение учетной записи на основе ролей, обнаружение одноразового адреса электронной почты (DEA), обнаружение HoneyPot / Spam track и глубокая проверка SMTP.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...