Java, изпрати имейл: проверете дали в имейл адреса е предоставен валиден хост

Нашият уебсайт изпраща имейли до имейл адреса, който потребителят въвежда на нашия уебсайт. Някои хора въвеждат ненужни имейл адреси. Как можем да разберем дали поне хостът на въведения адрес е валиден? Просто се опитвате да отворите сокет на порт 25 на въведения хост?

Актуализация: Намерих библиотека на Java за DNS неща. Какъв запис трябва да проверя?


person Mot    schedule 17.08.2010    source източник
comment
Зададох подобен въпрос относно това за php. Най-добрият залог би бил да направите DNS проверка на името на хоста.   -  person Albinoswordfish    schedule 17.08.2010


Отговори (2)


Трябва да потърсите MX записа за хост-частта от DNS... но има много ъглови случаи. Не преоткривайте колелото (непременно ще го разберете погрешно), опитайте се да намерите съществуваща библиотека. Знам само този от Snertsoft за C (интегриран в търговския milter-sender ), все пак.

[Отказ от отговорност: Аз съм щастлив потребител на milter-sender]

[Редактиране] Разгледайте RFC 5321 Раздел 5, който описва правилата за търсене на правилния хост.

person Volker Stolz    schedule 17.08.2010

Надявам се, че потвърждавате (с помощта на регулярен израз), че е въведен валиден имейл адрес. В противен случай няма смисъл да проверявате дали хостът е валиден.

person Bernard    schedule 17.08.2010
comment
Това е хубава торба с червеи точно там... regular-expressions.info/email.html Защо просто не направите имейл адреса незадължителен, ако потребителите не искат да предоставят такъв, тогава не е нужно, ако искат да предоставят такъв, накарайте ги да го въведат два пъти и да потвърдят, че двете стойности съвпадат. - person Jon Freedman; 17.08.2010
comment
Съжалявам, това не е това, което искам. Искам да предотвратя нещо като [email protected]. - person Mot; 17.08.2010