octscorpion

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            0 Posts :: 17 Stories :: 0 Comments :: 0 Trackbacks
          package com.action;

          import java.io.IOException;

          import org.apache.commons.net.smtp.SMTPClient;
          import org.apache.commons.net.smtp.SMTPReply;
          import org.xbill.DNS.Lookup;
          import org.xbill.DNS.Record;
          import org.xbill.DNS.Type;

          public class mail {
              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;
              }

              public static void main(String[] args) {

                  boolean test = checkEmail("6556565656@qq.com");
                  if (test) {
                      System.out.print("有效");
                  } else
                      System.out.print("無效");
              }

          }
          需要的jar支持:commons-net-2.2.jar,dnsjava-2.1.1.jar   此方式優點:驗證出的結果,完全符合真實情況,如果一個郵箱被驗證存在,那么它就一定存在,反之亦然。  此方式缺點:驗證時比較耗時,我自己檢測,需要5秒左右的時耗;實際情況視你自己寫的發件方而定。
          posted on 2013-01-12 07:22 一G刀客 閱讀(241) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 乌兰县| 武宣县| 霍林郭勒市| 滕州市| 沛县| 凤冈县| 昆山市| 祁阳县| 东乡| 峨眉山市| 平阴县| 文山县| 涞源县| 松江区| 邛崃市| 本溪市| 高青县| 阳山县| 浪卡子县| 吐鲁番市| 安庆市| 镶黄旗| 淮滨县| 林州市| 琼海市| 郎溪县| 军事| 晋宁县| 资阳市| 和林格尔县| 芦溪县| 连云港市| 承德县| 晋宁县| 栖霞市| 南木林县| 潜江市| 开鲁县| 虞城县| 尼木县| 印江|