该功能可以用于用户注册时或者操作用户敏感信息时的邮箱验证。需要用到的jar包:mail.jar
下面以qq邮箱为例,在开始之前需要先进入qq邮箱–>设置–>账户下开启下面两项服务当中的任意一个,开启后得到的16位授权码需要保存好,在需要使用邮箱密码的地方用这个授权码代替。
代码:
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.junit.Test;
public class Mail {
@Test
public void sendMail() throws MessagingException {
String sendFrom = "xxx@qq.com"; // 发送人地址
String password = "tvpoljuxxsagcbbc"; // 发送人邮箱密码或者16位授权码
String sendTo = "xxx@qq.com"; // 收件人地址
Properties props = new Properties();
props.setProperty("mail.smtp.host", "smtp.qq.com"); // 设置邮件服务器,注意不同的邮箱服务器名不同
props.setProperty("mail.smtp.auth", "true"); // 开启认证
// 1.创建连接对象连接到邮箱服务器
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(sendFrom, password);
}
});
// 2.创建邮件对象
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(sendFrom)); // 设置发件人
msg.setRecipient(RecipientType.TO, new InternetAddress(sendTo)); // 设置收件人
msg.setSubject("来自xxx的验证邮件"); // 设置邮件主题
msg.setContent("邮件内容", "text/html;charset=UTF-8"); // 设置邮件内容
// 3.发送
Transport.send(msg);
}
}