ssm实现qq邮箱发送验证码
ssm实现qq邮箱发送验证码
导入maven依赖
<!--邮箱验证码-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
新建 mail.properties 进行配置
#服务器主机名 smtp.xx.com
mail.smtp.host=smtp.qq.com
mail.smtp.username=qq号@qq.com
#客户端授权码
mail.smtp.password=授权码
#编码字符
mail.smtp.defaultEncoding=utf-8
#是否进行用户名密码校验
mail.smtp.auth=true
#设置超时时间
mail.smtp.timeout=20000
在springMVC配置文件配置
<!--QQ发送邮箱验证码-->
<!--读取属性文件-->
<context:property-placeholder location="classpath:mail.properties" ignore-unresolvable="true"/>
<!--配置邮件接口-->
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${mail.smtp.host}"/>
<property name="username" value="${mail.smtp.username}"/>
<property name="password" value="${mail.smtp.password}"/>
<property name="defaultEncoding" value="${mail.smtp.defaultEncoding}"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
<prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
</props>
</property>
</bean>
controller 进行配置
@Autowired
private JavaMailSender javaMailSender;//import org.springframework.mail.javamail.JavaMailSender;
@Value("${mail.smtp.username}")
private String emailFrom;
/*验证码发送*/
@PostMapping("/send")
public Result senMsg(HttpSession httpSession, @RequestParam("userEmail") String userEmail) {
//生成六位数验证码
String Captcha = String.valueOf(new Random().nextInt(899999) + 100000);
httpSession.setAttribute("Captcha", Captcha);//存储验证码
SimpleMailMessage message = new SimpleMailMessage();
//发件人的邮箱地址
message.setFrom(emailFrom);
//收件人的邮箱地址
message.setTo(userEmail);
//邮件主题
message.setSubject("验证码");
//邮件内容
message.setText("验证码:" + Captcha);
//发送邮件
javaMailSender.send(message);
return Result.success(200, "发送成功", null);
}
推荐博客:https://blog.csdn.net/weixin_42356887/article/details/105638417
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现