2014-03-12 189 views

回答

1

没有办法检查电子邮件是否真实。但是您只能检查格式是否正确的验证。

2

也许最好的方法来检查电子邮件是否是真实的,实际上是发送一个电子邮件到该地址与验证码/链接,将激活您的网站上的用户。使用正则表达式只会确保电子邮件有效,但不一定是真实的

21

,如果你想检查邮件的验证,你可以使用:

public static boolean isValidEmail(CharSequence target) { 
    if (target == null) { 
     return false; 
    } else { 
     return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches(); 
    } 
} 

,但也没办法,找出哪些电子邮件地址是真实的

你可以用下面的方法去除的if/else。

public static boolean isValidEmail(CharSequence target) { 
     return target != null && android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches(); 
    } 
+0

感谢你...... –

+0

欢迎的男人.... –

+1

为什么不'回报目标!= null && android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();' –

1

没有办法知道电子邮件是否存在。特别是如果它在像yopmail或类似的网站上,我相信它会接受任何邮件到他们的域名上的任何帐户。

但是,您可以检查:

。如果地址有正确的语法,是一个注册的域名(语法正则表达式DNS检查,如果没有为@背后的站点邮件服务器)

。发送电子邮件并检查响应,如果邮件未在其网站上注册,则某些提供商可能会向您发送错误消息。

1

使用下面的代码:

if(validateEmail(mEdtTxtEmail.getText().toString().trim())){ 
      // your code   
       } 

private boolean validateEmail(String data){ 
     Pattern emailPattern = Pattern.compile("[email protected]+\\.[a-z]+"); 
     Matcher emailMatcher = emailPattern.matcher(data); 
     return emailMatcher.matches(); 
    } 
1

您可以使用正则表达式验证电子邮件地址,所以:

public boolean isEmailValid(String email) 
{ 
    final String EMAIL_PATTERN = 
     "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; 
    final Pattern pattern = Pattern.compile(EMAIL_PATTERN); 
    final Matcher matcher = pattern.matcher(email); 
    return matcher.matches(); 
} 

Here是与更多的正则表达式可以选择一个链接。

9

此代码完全正常,它给你一个布尔值。因此,如果其真正的它会给真假,它会给你假

  android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches(); 
+0

谢谢,验证电子邮件格式工作:) – Woppi

0

用途:

if (!Patterns.EMAIL_ADDRESS.matcher(your_edit_text.getText().toString()).matches()){ 
    loginEmail.setError("Please enter a Valid E-Mail Address!"); 
}else { 
    //email is valid 
} 
相关问题