本例以Windows, JDK1.8, javax.mail.jar1.5.6 为基础,演示邮箱地址验证。

通常对邮件地址的验证我们会使用正则表达式去匹配,但是,在正则匹配的过程中可能会存在不能完全匹配或者漏掉不是正确的地址,这时我们可以使用javax.mail 提供InternetAddress.validate() throws AddressException 进行验证。

pom.xml

在pom添加mail相关的依赖包:

1
2
3
4
5
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.6</version>
</dependency>

注:在版本的mail包中对邮箱地址的验证采用的是RFC 822 的标准,关于RFC 822 的标准可以参考W3C文档:https://www.w3.org/Protocols/rfc822/

Validate

File : EmailAddressCheck.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.devnp.java_mail;

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

public class EmailAddressCheck {

public static void main(String[] args) {
// TODO Auto-generated method stub

InternetAddress internetAddress = new InternetAddress();

internetAddress.setAddress("duliu1990@gmail.com");


try {
internetAddress.validate();

System.out.println("The Email address is valid ");
} catch (AddressException e) {
// TODO Auto-generated catch block
//e.printStackTrace();

System.out.println("The Email address is invalid ");
}


}

}

结果:

1
The Email address is valid