我們的網站向用戶在我們網站上輸入的電子郵件地址發送電子郵件。有些人輸入垃圾電子郵件地址。我們怎麼能發現,至少輸入的地址的主機是否是有效的?只需嘗試在輸入主機的端口25處打開一個套接字?Java,發送電子郵件:驗證電子郵件地址是否提供了有效主機
更新:我發現Java library for DNS stuff。我應該檢查什麼記錄?
我們的網站向用戶在我們網站上輸入的電子郵件地址發送電子郵件。有些人輸入垃圾電子郵件地址。我們怎麼能發現,至少輸入的地址的主機是否是有效的?只需嘗試在輸入主機的端口25處打開一個套接字?Java,發送電子郵件:驗證電子郵件地址是否提供了有效主機
更新:我發現Java library for DNS stuff。我應該檢查什麼記錄?
您需要查看來自DNS的主機部分的MX記錄......但有很多角落案例。不要重新發明輪子(你一定會弄錯它的),試着找到一個現有的圖書館。不過,我只知道Snertsoft for C(集成到商業milter-sender)中的一個。
[免責聲明:我雄魚發送者的快樂用戶]
[編輯] 看看RFC 5321 5節,它描述了用於查找正確的主機的規則。
我希望您驗證(使用正則表達式)已輸入有效的電子郵件地址。否則,檢查主機是否有效沒有意義。
這是一個很好的蠕蟲袋在那裏... http://www.regular-expressions.info/email.html 爲什麼不只是使電子郵件地址可選,如果用戶不想提供一個然後他們不如果他們確實想提供一個讓他們輸入兩次並驗證兩個值匹配的話,那麼他們就不必這樣做了。 – 2010-08-17 14:11:40
對不起,這不是我想要的。我想防止像'sdjkfsjf @ fjdskjfsd.com'這樣的東西。 – Mot 2010-08-17 17:18:55
我問了一個關於這個問題的類似問題。最好的辦法是對主機名進行DNS檢查。 – Albinoswordfish 2010-08-17 13:56:37