使用邮箱找回密码 springmvc

因项目需求,需要邮箱找回密码功能,正好springmvc中有个JavaMailSenderImpl类,使用它来完成此功能


1、导入所需jar包

mail.jar  和  spring-context-support-4.0.0.jar


2、在配置文件中配置JavaMailSenderImpl类的bean

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">  
<property name="host" value="smtp.qq.com"></property>  
<property name="port" value="25"></property>
<property name="username" value="123456@qq.com"></property>  
<property name="password" value="******"></property>  

<property name="javaMailProperties">  
   <props>  
       <prop key="mail.smtp.auth">true</prop>  
       <prop key="mail.smtp.from">123456@qq.com</prop>
       <prop key="mail.smtp.socketFactory.fallback">false</prop> 
       <prop key="mail.smtp.starttls.enable">true</prop> 
       <!-- <prop key="mail.debug">true</prop> -->
   </props>  
</property>  
</bean> 

3、注入bean

在需要处理发送邮件的类中使用

@Resource
private JavaMailSenderImpl mailSender;

 

注入发送邮件的bean

主要代码如下:

MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");
//设置发件人/收件人信息
helper.setFrom(mailSender.getUsername());
helper.setTo(12345678@qq.com);
helper.setSubject("密码重置");
helper.setText("重置密码邮件", true);
mailSender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
 


大致就需要以上几步,具体的邮件url的生成规则以及url的验证等等,在这里就不细说了,网上也有很多,

个人也可以根据自己项目的特点和需要,自定义url生成规则


下面说下,编码过程遇到的一些问题:

1、本人使用的是qq邮件作为发送方测试的,需要手动开启服务

在邮箱的设置--账户--POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务中需要手动开启POP3/SMTP服务

此外,配置文件中的password使用的是授权码,在开启服务的时候会生成


2、还有一个问题就是授权的问题,这个问题花了些时间,开始的时候报授权失败错误,网上查阅,才解决

需要在第二步的配置文件中添加<prop key="mail.smtp.starttls.enable">true</prop> 


3、配置文件中的密码,配置的是授权码,用于第三方客户端登录,授权码开启服务时生成或设置


由于本人只测试了qq邮箱作为发送方,因此还有很多问题未涉及,希望大家有好的想法或遇到了问题,都可以随时讨论、学习



让我们一起遨游在代码的海洋里!


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值