最开始想道使用javaMail是因为在用户修改密码验证的时候。原计划是通过绑定手机号进行短信提醒,不过短信需要接入第三方付费接口。但是因为资金有限,所以推而求次。选择了发送邮件的形式。
一、首先,我们需要有两个jar包进行支持,分别是activation.jar和mail.jar;
相关jar包以及Deom下载地址:https://download.csdn.net/download/qq_40562787/10488003
二、将jar包导入。
三、修改发送QQ邮件的邮箱配置(如下图)
四、上代码
package com.test;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
/**
* 发送邮件测试方法
*
* @Date 2018年6月20日 10:08:32
*/
@Controller
public class Email_Test {
@RequestMapping(value="test.action")
private void Email() {
try {
String fromMail = "XX@qq.com"; // 填写你的gmail帐号
String password = "XXXX"; // 填写你的gmail密码
Properties props = new Properties();
props.put("mail.smtp.starttls.enable","true"); // 设置使用SSL
props.put("mail.smtp.host", "地址");
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
// 给消息对象设置收件人、发件人、主题、发信时间
InternetAddress fromAddress = new InternetAddress(fromMail);
message.setFrom(fromAddress);
InternetAddress toAddress = new InternetAddress("XXXX@qq.com");
message.setRecipient(Message.RecipientType.TO, toAddress);
message.setSubject("这是一个邮箱验证主题。");
message.setSentDate(new Date());
// 新建一个MimeMultipart对象来存放多个BodyPart对象
Multipart multipart = new MimeMultipart();
// 新建一个存放信件内容的BodyPart对象
BodyPart mdp = new MimeBodyPart();
mdp.setContent("验证码内容。", "text/html;charset=gb2312");
multipart.addBodyPart(mdp);
message.setContent(multipart);
message.saveChanges();
Transport transport = session.getTransport("smtp");
// 以smtp方式登陆邮箱,第1个参数是发送邮件用的邮件服务器SMTP地址,第2个参数为用户名,第3个参数为密码
transport.connect("smtp.qq.com", fromMail, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
五、点击运行。
over