SSM项目实现简单的邮件发送

1.需要加入或者需要修改的文件

在这里插入图片描述

2.在QQ邮箱中打开pop3和IMAP服务

(打开qq邮箱—》设置—》账户),通过验证方式后qq邮箱会弹窗告诉你一个密码,记录下来,好像只会弹出一次
在这里插入图片描述

3.创建属性文件mail.properties 写入代码:

#服务器主机名 smtp.xx.com
mail.smtp.host=smtp.qq.com
mail.smtp.username=123456789@qq.com    #123456789这里填发送者的qq邮箱
#密码/客户端授权码
mail.smtp.password=abcdefg        #这里写开启pop时qq邮箱给我们的那个密码
#编码字符   
mail.smtp.defaultEncoding=utf-8
#是否进行用户名密码校验
mail.smtp.auth=true
#设置超时时间
mail.smtp.timeout=20000

4.在spring-dao.xml中填入一下代码,扫描属性文件:

<!--读取属性文件,读取所有后缀为properties的属性文件-->
<context:property-placeholder location="classpath:*.properties"/>

5.配置spring-web.xml 在标签中间加上下面的bean :

<!--    邮件发送-->
   <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>

6.写一个SendMailController.java 来发送邮件:

package com.hbu.web;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 邮件发送
 * @author 小冉
 * @date 2020年7月9日19:16:42
 */
@RestController
@RequestMapping("/email")
public class SendEmailController {

    @Autowired
    private JavaMailSender javaMailSender;

    @Value("${mail.smtp.username}")
    private String emailFrom;

    @RequestMapping("/send")
    public String senMsg(){//这里返回点啥子都行啦,我就返回了个String
        SimpleMailMessage message = new SimpleMailMessage();
        //发件人的邮箱地址
        message.setFrom(emailFrom);
        //收件人的邮箱地址,因为是测试这里就写死了发给"baobao521@qq.com"
        message.setTo("baobao521@qq.com");
        //邮件主题
        message.setSubject("验证内容");
        //邮件内容,验证码也写死了
        message.setText("收到验证码:123456");
        //发送邮件
        javaMailSender.send(message);
        return "发送成功!";
    }
}
7.前端h5代码,点击按钮发送:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>邮件发送测试</title>
    /*
    *引入在线的jq
    */
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
    <div>
        <button onclick="sendMail();">发送邮件验证</button>
    </div>
</body>
<script>
    function sendMail() {
        //阿贾克斯向后台发送数据,这里没有传参
        $.ajax({
            url: "http://localhost:端口号/项目名/email/send",
            type: "post", //get和post两种(默认的是get)
            data: {}, //i请求发送出的参数
            async: true, //请求是否异步,默认异步
            dataType: "json", //设定传回来的数据类型
            success: function (data) {
                    alert("修改密码成功!");
            }
        });
    }
</script>
</html>

效果图:
在这里插入图片描述

8.成功截图:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值