当前位置: 代码迷 >> J2SE >> 电子邮件@后域名怎么才能知道正确地址
  详细解决方案

电子邮件@后域名怎么才能知道正确地址

热度:875   发布时间:2016-04-24 01:43:23.0
电子邮件@后域名如何才能知道正确地址?
比如 :
 hai@fmmu.edu.XXX
 ldle@163.dcef.ff  
 censl@shmu.XX.XX
 
我只知道 ldle@163, hai@fmmu 这前面部分,有没有什么办法可以知道后面部分正确域名?


谢谢各位大大!

------解决方案--------------------
这个真没法确定,例如企业邮箱,@后面都是可以自己定义的,只能按规则来判断是否一个合法的邮箱地址,而不能直接从邮箱地址的字符串上判断出是否一个有效的邮箱,如果真要判断,那就只能向此邮箱发一个邮件进行测试
------解决方案--------------------
@后面是域名的信息,这个是随时变话的,要怎么判断呢?
------解决方案--------------------
基本不可能知道。。后面部分不规则。。如很多企业邮箱后面都是企业域名。。。
------解决方案--------------------
探讨

基本不可能知道。。后面部分不规则。。如很多企业邮箱后面都是企业域名。。。

------解决方案--------------------
这种域名行文规则就像网址域名一样,是某个地址的代号,除了字符串须符合一定的规则(以点分割,使用规定字符等),其它则都是自定义的了
------解决方案--------------------
探讨
引用:

这种域名行文规则就像网址域名一样,是某个地址的代号,除了字符串须符合一定的规则(以点分割,使用规定字符等),其它则都是自定义的了

有没有可能用cmd ping 测试一下,出来呢?

------解决方案--------------------
Java code
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Scanner;/** * PingMailDomain.java * @author jileniao.net * 判断输入的邮件地址@后的域名是否正确 */public class PingMailDomain {    private Boolean isMailDomailRight(String emailAdd) throws IOException {        String[] tmp = emailAdd.split("@");                // 简单校验邮件地址是否含有@号:非有效邮箱地址        if (!emailAdd.contains("@")) {            return false;        }        String domain = tmp[1];        String cmdString = "cmd /c ping " + domain;        Process prs = Runtime.getRuntime().exec(cmdString);        BufferedReader br = new BufferedReader(new InputStreamReader(prs.getInputStream()));        String line = null;        StringBuffer sb = new StringBuffer();        // 得到ping结果信息        while ((line = br.readLine()) != null) {            sb.append(line);        }        String result = sb.toString();        String[] temp = result.split("%");        String result1 = temp[0];        // ping结果loss为100%:非有效邮箱域名        if (result1.endsWith("100")) {            return false;        }        return true;    }        public static void main(String[] args) throws Exception {                System.out.println("Please input EmailAddress");        Scanner input = new Scanner(System.in);        // 获取键盘输入的邮件地址        String addressString = input.nextLine();        PingMailDomain pmd = new PingMailDomain();        if (pmd.isMailDomailRight(addressString)) {            System.out.println("OK");        } else {            System.out.println("NG");        }    }}