有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android检查电子邮件地址是否有效?

我开发了一个安卓应用程序,可以向用户发送电子邮件
但事实证明,一些电子邮件地址是无效的
如何检查用户输入的电子邮件地址是否有效


共 (6) 个答案

  1. # 1 楼答案

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

    但是,您可以检查:

    1。如果地址的语法正确且位于注册域中(regex查看语法和dns检查@后面的站点是否有邮件服务器)

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

  2. # 2 楼答案

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

  3. # 3 楼答案

    这段代码运行得非常好,它给出了一个布尔值。所以,如果它是真的,它会给出真的和假的,它会给出假的

             android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
    
  4. # 4 楼答案

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

  5. # 5 楼答案

    如果您想检查电子邮件的有效性,可以使用:

    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();
        }
    
  6. # 6 楼答案

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

    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是一个链接,包含更多可供选择的正则表达式