如何使用Java Mail API验证电子邮件地址?

此代码段显示了如何使用javax.mail.internet.InternetAddress该类来验证电子邮件地址。当传递给构造函数的电子邮件地址不是有效的电子邮件地址时,该validate()方法将引发javax.mail.internet.AddressException。

这是完整的代码片段:

package org.nhooo.example.mail;

import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;

public class ValidateEmail {
    public static void main(String[] args) {
        ValidateEmail demo = new ValidateEmail();

        String email = "nhooo@gmail.com";
        boolean isValid = demo.validateEmail(email);
        demo.printStatus(email, isValid);

        email = "nhooo.gmail";
        isValid = demo.validateEmail(email);
        demo.printStatus(email, isValid);
    }

    private boolean validateEmail(String email) {
        boolean isValid = false;
        try {
            // 创建InternetAddress对象并验证提供的内容
            // 这种情况下的地址是电子邮件地址。
            InternetAddress internetAddress = new InternetAddress(email);
            internetAddress.validate();
            isValid = true;
        } catch (AddressException e) {
            e.printStackTrace();
        }
        return isValid;
    }

    private void printStatus(String email, boolean valid) {
        System.out.println(email + " is " + (valid ? "a" : "not a") +
                " valid email address");
    }
}

运行该程序时,您将在屏幕上看到以下消息。为简单起见,我删除了完整的错误堆栈跟踪。

nhooo@gmail.com is a valid email address
nhooo.gmail is not a valid email address

Maven依赖

<!-- http://repo1.maven.org/maven2/javax/mail/javax.mail-api/1.5.6/javax.mail-api-1.5.6.jar -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>javax.mail-api</artifactId>
    <version>1.5.6</version>
</dependency>