在做ssm项目的过程中,需要简单使用到邮件发送验证码验证的功能,所以经过查阅资料集成了进去,现将其分享给大家:
我这里使用的是qq邮箱来进行发送
-
导入依赖
<!-- 邮件发送--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>5.3.15</version> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
-
编写邮件发送配置类
@Configuration public class EmailConfig { @Bean public MailSender mailSender(){ Properties properties = new Properties(); JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setHost("smtp.qq.com"); mailSender.setUsername("1481315703@qq.com"); //这里的密码是你邮箱的里开启post3服务的密码 mailSender.setPassword("*********"); // MailSSLSocketFactory mailSSLSocketFactory = null; // try { // mailSSLSocketFactory = new MailSSLSocketFactory(); // } catch (GeneralSecurityException e) { // e.printStackTrace(); // } // mailSSLSocketFactory.setTrustAllHosts(true); // properties.put("mail.smtp.ssl.socketFactory", mailSSLSocketFactory); // mailSender.setProtocol("smtp"); properties.setProperty("mail.smtp.auth","true"); //设置端口号为587,否则部署在服务器会出错 properties.setProperty("mail.smtp.port", "587"); properties.setProperty("mail.smtp.socketFactory.port", "587"); // properties.setProperty("mail.smtp.socketFactory.fallback", "false"); // properties.put("mail.smtp.ssl.enable", true); // properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); mailSender.setJavaMailProperties(properties); return mailSender; } }
-
编写邮件发送工具类
这里需要先将工具类注入spring容器中,以此来获取JavaMailSender对象
@Component public class EmailUtil { @Resource private JavaMailSender mailSender; /** * 发送简单邮件 * @param userEmail * @param code */ public void sendSimpleEmail(String userEmail,String code){ SimpleMailMessage message = new SimpleMailMessage();//消息构造器 message.setFrom("1481315703@qq.com");//发件人 message.setTo(userEmail);//收件人 message.setSubject("爱学习的大雄博客登录验证码");//主题 message.setText("您的验证码是:"+code);//正文 mailSender.send(message); } }
-
controller层或service层调用使用即可