java郵箱驗證,java郵箱驗證鏈接

本文目錄一覽:

java如何驗證一個email地址是否真實有效。

首先使用java提供的格式類判斷email是否格式有誤,然後使用開源框架,驗證郵箱是否有用,示例如下:

public static boolean checkEmail(String email) {

        if (!email.matches(“[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+”)) {

            return false;

        }

 

        String host = “”;

        String hostName = email.split(“@”)[1];

        Record[] result = null;

        SMTPClient client = new SMTPClient();

 

        try {

            // 查找MX記錄

            Lookup lookup = new Lookup(hostName, Type.MX);

            lookup.run();

            if (lookup.getResult() != Lookup.SUCCESSFUL) {

                return false;

            } else {

                result = lookup.getAnswers();

            }

 

            // 連接到郵箱服務器

            for (int i = 0; i  result.length; i++) {

                host = result[i].getAdditionalName().toString();

                client.connect(host);

                if (!SMTPReply.isPositiveCompletion(client.getReplyCode())) {

                    client.disconnect();

                    continue;

                } else {

                    break;

                }

            }

 

            //以下2項自己填寫快速的,有效的郵箱

            client.login(“163.com”);

            client.setSender(“sxgkwei@163.com”);

            client.addRecipient(email);

            if (250 == client.getReplyCode()) {

                return true;

            }

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            try {

                client.disconnect();

            } catch (IOException e) {

            }

        }

        return false;

    }

 

需要的jar支持:commons-net-2.2.jar,dnsjava-2.1.1.jar

java :從控制台輸入一個字符串,驗證是不是郵箱?

自定了一個合法郵箱規則,希望能幫助理解。代碼如下:import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println(“請輸入一個郵箱地址:”);String mail = sc.nextLine();/*   設定郵箱地址的合法規則,合法郵箱地址要求如下:                   (1)字符必須是英文或數字開始                   (2)必須包含一個@                                 (3)@符號在. 符號前面                   (4)以英文或數字結尾 */                                  //設置一個正則表達式 String reg = “[\\w]+@[\\w]+.[\\w]+”; //告知此字符串是否匹配給定的正則表達式。if(mail.matches(reg)) {System.out.println(“郵箱地址合法!”);}else {System.out.println(“郵箱地址不合法!”);}}}這裡主要是採用正則表達式的方式。

關於正則表達式,查看Pattern類和Matcher類。樓主可以可以到網上查看下相關資料。解釋下上面的正則表達式String reg = “[\\w]+@[\\w]+.[\\w]+”;\w  表示單詞字符:[a-zA-Z_0-9],上面是兩個反斜桿是因為反斜桿是轉義字符  +號表示:出現一次或多次 ,所以[\\w]+意思就是一到多個單詞字符(英文或數字)@ :直接表示@字符.:表示點字符綜上所述。String reg = “[\\w]+@[\\w]+.[\\w]+”;的意思就是 :一到多個字符 + @ + 一到多個字符 + 點 + 一到多個字符。正則表達式使用的好。

合法E-mail地址:  1. 必須包含一個並且只有一個符號“@”  2. 第一個字符不得是“@”或者“.”  3. 不允許出現“@.”或者.@  4. 結尾不得是字符“@”或者“.”  5. 允許“@”前的字符中出現“+”  6. 不允許“+”在最前面,或者“+@”

java 驗證郵箱是否存在

一般的驗證是 驗證郵件地址格式是否正確,如果你需要驗證郵箱是否存在就需要發個郵件過去,即使發過去 你也不知道是否存在,除非有郵件返回。

所以一般只是驗證郵件格式是否正確就可以了。

如何用java檢驗電子郵箱格式的合法性?要用到String的方法來判斷

自己寫邏輯驗證的方式可以做到。我寫了下面的:

public static boolean validateEmail(String email) {

boolean flag = false;

int pos = email.indexOf(“@”);

if (pos == -1 || pos == 0 || pos == email.length() – 1) {

return false;

}

String[] strings = email.split(“@”);

if (strings.length != 2) {// 如果郵箱不是xxx@xxx格式

return false;

}

CharSequence cs = strings[0];

for (int i = 0; i cs.length(); i++) {

char c = cs.charAt(i);

if (!Character.isLetter(c) !Character.isDigit(c)) {

return false;

}

}

pos = strings[1].indexOf(“.”);// 如果@後面沒有.,則是錯誤的郵箱。

if (pos == -1 || pos == 0 || pos == email.length() – 1) {

return false;

}

strings = strings[1].split(“.”);

for (int j = 0; j strings.length; j++) {

cs = strings[j];

if (cs.length() == 0) {

return false;

}

for (int i = 0; i cs.length(); i++) {//如果保護不規則的字符,表示錯誤

char c = cs.charAt(i);

if (!Character.isLetter(c) !Character.isDigit(c)) {

return false;

}

}

}

return true;

}

這個效率也不會差很多,不過我推薦matches方法,經過測試的,matches匹配方式運行10000次的時間比上面的時間少了20毫秒。

原創文章,作者:SZLJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133578.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
SZLJ的頭像SZLJ
上一篇 2024-10-03 23:59
下一篇 2024-10-03 23:59

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論