JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)
本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦。
先把实现的发送邮箱验证码更能更新了。
老规矩,更多内容在注释山聊。
首先还是先放上成功的截图:
(1)准备阶段 - 获取授权码
授权码(这个授权码是让 JAVA 程序来登录发送者的 QQ 邮箱的,相当于登动态密码)
获取步骤:
点击【设置】>【账户】>【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务】
(2)加载相关 jar 包
使用 Maven 的话,直接拷贝下面的就可以:
<!-- https://mvnrepository.com/artifact/javax.activation/activation --> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.mail/mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-email --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.5</version> </dependency>
(3)代码编写 - 示例
请根据提示自行修改配置
package com.xpwi.action; import org.apache.commons.mail.SimpleEmail; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @Scope("prototype") @RequestMapping("/email") public class EmailValidateAction { //邮箱验证 //*.do 的格式是 Spring MVC 拦截的一种配置,请自行修改 @RequestMapping("/sendCode.do") @ResponseBody public int emailValidate(){ SimpleEmail email=new SimpleEmail();//创建一个HtmlEmail实例对象 try { //填写邮箱服务器,如是QQ邮箱服务器,直接用:smtp.qq.com email.setHostName("邮箱服务器"); email.setCharset("utf-8"); //设置收件人 email.addTo("收件人邮箱地址"); //设置发送人邮箱,和用户名 email.setFrom("发件人邮箱地址","发件人署名(随意写)"); //配置邮箱加授权码,相当于等于自己的邮箱 email.setAuthentication("发送者的邮箱","发送者的授权码"); //使用安全链接 email.setSSLOnConnect(true); //设置邮件的主题 email.setSubject("注册验证码"); //设置邮件的内容,自行修改动态验证码 email.setMsg("尊敬的用户:你好!\n 注册验证码为:123444" +"\n"+" (有效期为一分钟)"); //发送 email.send(); }catch (Exception e){ e.printStackTrace(); //返回 0 表示失败 return 0; } //返回 1 表示发送成功 return 1; } }
更多文章链接
来源:https://www.cnblogs.com/xpwi/p/10545885.html