SSM 框架整合 spring 发送邮件功能实现!

基于SSM的 spring 发送邮件的实现

  • 由于考虑到项目中需要,如果程序出现异常或其它问题,可以发送邮件来及时提醒后台维护人员处理。所以目前考虑使用JavaMail来实现邮件发送!如下,是我整理的一些内容,做个笔记记录下:(当然,在这功能实现之前,需要搭建好ssm的基本框架!)

1.导入jar包。首先我们需要在我们spring项目中添加以下两个jar包(我是使用的maven所以直接配置依赖信息)

<!--添加spring支持email 依赖-->
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>4.3.19.RELEASE</version>
</dependency>

<!--邮件发送-->
<dependency>
      <groupId>com.sun.mail</groupId>
      <artifactId>javax.mail</artifactId>
      <version>1.6.1</version>
</dependency>

2.配置邮件服务器等信息。

  • 先在邮箱中设置开启smtppop3服务然后拿到授权码(需要保存下来,配置到代码中):我这里使用的是QQ邮箱,如下:
    在这里插入图片描述
    mail.properties文件(邮件相关的配置):
#服务器主机名 smtp.xx.com
mail.smtp.host=smtp.qq.com
mail.smtp.username=xxx@qq.com
#密码/客户端授权码
mail.smtp.password=这里填入第二步中生成的授权码
#编码字符
mail.smtp.defaultEncoding=utf-8
#是否进行用户名密码校验
mail.smtp.auth=true
#设置超时时间
mail.smtp.timeout=20000

3.配置spring-dao.xml,在配置文件中导入properties文件的属性(根据自己项目实际情况来配置,mail.properties的扫描):

<!--读取属性文件-->
<context:property-placeholder location="classpath:*.properties"/>
  • 然后注入一个邮件发送的bean接口,并且初始化配置相关属性(我单独编写一个spring-mail.xml文件来配置,可以直接配置在spring-mvc.xml文件中):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--配置邮件接口-->
    <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>
</beans>

所有配置都完成了

4.编写一个测试类来测试一下:

package com.mzj.study.controller;

import com.mzj.study.utils.JsonData;
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: 2018-11-12 18:10
 * Description:<描述>
 */
@RestController
@RequestMapping("/email")
public class SenEmailController {

    @Autowired
    private JavaMailSender javaMailSender;

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

    @Value("${mail.smtp.tousername}")
    private String toEmail;

    @RequestMapping("send")
    public Object senMsg(){
        SimpleMailMessage message = new SimpleMailMessage();
        //发件人的邮箱地址
        message.setFrom(emailFrom);
        //收件人的邮箱地址
        message.setTo(toEmail);
        //邮件主题
        message.setSubject("spring email test!!!!");
        //邮件内容
        message.setText("收到的邮件内容:spring email test !!!");
        //发送邮件
        javaMailSender.send(message);
        return JsonData.success("success",message);
    }
}

5.测试结果。如图:

  • 访问接口运行程序 在这里插入图片描述
  • 查看邮箱的收到的邮件信息
    则表明功能实现!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值