1.本篇文章的代码原理是根据前端传来的用户名到数据库中取对应的邮箱,并通过邮箱帮助类向邮箱发送验证码,将验证码存在session中,最后通过前端传过来的验证码与存在session中的验证码进行比较,如果相同则进行下一步(用户注册时的邮箱验证或者后面面的忘记密码)。
2.调试后台API用的是Swagger
3.用到的依赖:
<!-- javaMail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.6</version>
</dependency>
1.帮助类(即放到utils包下的类)
1.1EmailConfig
public class EmailConfig {
//发送邮件的方法
public static void sendEmail(String toEmailAddress, String emailTitle, String emailContent) throws Exception {
//读取配置文件中的配置信息
String emailSMTPHost = PropertiesConfig.getEmailKey("emailSMTPHost");
String emailSMTPPort = PropertiesConfig.getEmailKey("emailSMTPPort");
String emailAccount = PropertiesConfig.getEmailKey("emailAccount");
String emailPassword = PropertiesConfig.getEmailKey("emailPassword");
Properties pros = new Properties();
//采用debug调试
pros.setProperty("mail.debug", "true");
//身份验证
pros.setProperty("mail.smtp.auth", "true");
//邮箱端口号,QQ一般为456或者587
pros.put("mail.smtp.port", emailSMTPPort);
//设置邮件服务器的主机名,就是那个服务器地址
pros.setProperty("mail.smtp.host", emailSMTPHost);
//选择发送邮件的协议
pros.setProperty("mail.transport.protocol", "smtp");
//SSL认证,这个主要看邮箱是否基于SSL加密,加密的话需要开启才可以使用
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
//这边需要设置是否使用SSL安全连接
pros.put("mail.smtp.ssl.enable", "true");
pros.put("mail.smtp.ssl.socketFactory", sf);
//创建一个session回话
Session session = Session.getInstance(pros);