java开发重置密码发送邮件

本文介绍如何使用Java实现重置密码的电子邮件发送功能。通过配置邮件服务器并利用JavaMail API,可以向用户发送带有重置链接的HTML格式邮件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java开发重置密码发送邮件

每篇一句励志:随着年龄的增长,我们不变得更好也不更坏,而是变得更像我们自己。

直接上代码

pom.xml

<!--mail-->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4</version>
        </dependency>


emailConfig.properties

## 服务器发送需要验证身份
mail.smtp.auth=true
##使用163邮件服务器主机
mail.host=smtp.163.com
##发送邮件协议名称
mail.transport.protocol=smtp

#如果使用阿里云服务器请把以下俩个配置打开,因为他会把默认的25端口禁用掉
#使用SMTPS协议465端口
#mail.smtp.socketFactory.port=465
#SSL证书Socket工厂
#mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

##邮件链接跳转地址
url=127.0.0.1:8080
##邮箱账号密码
mail.username=XXXXXXX@163.com
mail.password=XXXXX



eamil.java

@RequestMapping(value = "/eamil",method = RequestMethod.GET)
    public  Result mail(String username) throws MessagingException, IOException {
        String eamil = dataUserApiService.selectEmail(username);
        Properties props = new Properties();
        // 设置读取配置文件
        props.load(this.getClass().getResourceAsStream("/emailConfig.properties"));
        Session session = Session.getInstance(props);
        // 创建邮件对象
        Message msg = new MimeMessage(session);
        try {
            msg.setSubject("重置密码");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        // 填写邮件内容
        String msgContent = "亲爱的 " + username + "  您好:<br/><br/>"
                + "您在&nbsp;"  + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "&nbsp;提交重置密码的请求。<br/><br/>"
                + "请打开以下链接重置密码:<br/><br/>"
                +"<a href='http://localhost:63342/demo/email.html'>http://"+props.getProperty("url")+"/email.html</a><br/><br/>"
                +"(如果上面不是链接形式,请将该地址手工粘贴到浏览器地址栏再访问)。"+ "<br/><br/>"
                +"如果您没有请求重置密码,请忽略此邮件。" + "<br/><br/>"
                + "感谢使用本系统。" + "<br/><br/>"
                + "此为自动发送邮件,请勿直接回复!";

        msg.setContent(msgContent, "text/html;charset=utf-8");// 设置邮件内容为html格式
        // 设置发件人
        msg.setFrom(new InternetAddress(MimeUtility.encodeText("修改密码") + " <"+ props.getProperty("mail.username")+">"));// 设置邮件来源
        Transport transport = session.getTransport();
        // 连接邮件服务器
        transport.connect(props.getProperty("mail.username"), props.getProperty("mail.password"));
        // 发送邮件
        transport.sendMessage(msg, new Address[] {new InternetAddress(eamil)});//此处“eamail”填的是要发送的邮箱
        transport.close();
                // 关闭连接
        return ResultUtil.success();
    }

记得先得开启你163邮箱的服务,这个服务一般都是开启状态中,不过也有个别。
1.登录163邮箱。
2.点击设置里的POP3/SMTP/IMAP。
3.POP3/SMTP服务 、IMAP/SMTP服务,这俩个服务都打开。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值