【机房报修管理系统】后端篇(十六) Service层开发——邮件服务

一、前情提要


    上一次我们完成了实训室楼理服务;由于在管理员受理工单和完成工单的时候需要发送邮件,所以这一次我们来完成邮件服务。


二、接口设计


由于在这里我们质询要在受理工单和完成工单的时候发送有几件,所以执行需要设计两个接口:

1.受理工单发送邮件:acceptOrderMail

  • 参数:userName(报修人名字,类型为String)
  • 参数:userEmail(报修人邮箱)
  • 返回值:String

2.完成工单发送邮件:acceptOrderMail

  • 参数:userName(报修人名字,类型为String)
  • 参数:userEmail(报修人邮箱)
  • 返回值:String


三、相关介绍

1.如何发送邮件?


    平时我们发送有几件十分容易,只要登录邮箱,填入收信邮箱地址,写需要发送的内容,按下发送即可。但是在代码里面怎样实现?
    其实在代码里面也有很多实现方式,有钱想省事可以找一些提供邮件服务的提供商,例如阿里云的接口市场,一搜一大把,只需要按照接口要求发起请求即可,缺点是按量付费,可能几百封邮件几毛钱。
    除了以上的方法以外,我们也能自己实现,在SpringBoot我们可以使用自带的邮件服务进行开发。



四、实践操作


1.通过Maven引入邮件服务

pom.xml中编写以下代码:

		<!--邮件相关依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

2.添加邮件相关配置

application.properties下填入以下配置:
由于这里我是用的是OutLook邮箱,所以填写的主机名和端口都为outlook提供的,用户名和密码请填写自己申请的邮箱。

############################################################
#
# 邮箱 配置
#
############################################################
spring.mail.host=smtp-mail.outlook.com
spring.mail.port=587
spring.mail.username=
spring.mail.password=
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

3.按照上方的接口设计创建接口类EmailService

com.repairsystem.service下创建接口类EmailService

package com.repairsystem.service;

public interface EmailService {

    String acceptOrderMail(String userName, String userEmail);

    String completeOrderMail(String userName, String userEmail);
}

4.在常量工具类ConstantUtils中添加邮箱地址常量

创建内部类Mail并下下邮箱地址常量:

class Mail{
   public static final String FROM_MAIL="自己申请的邮箱地址";
}

5.创建接口实现类EmailServiceImpl

com.repairsystem.service.Impl下创建接口实现类EmailServiceImpl,实现接口EmailService

package com.repairsystem.service.Impl;

import com.repairsystem.service.EmailService;
import com.repairsystem.utils.ConstantUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;

import java.util.Date;

@Service
public class EmailServiceImpl implements EmailService {

    @Autowired
    private JavaMailSender mailSender;

    @Override
    public String acceptOrderMail(String userName, String userEmail) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(ConstantUtils.Mail.FROM_MAIL);
        simpleMailMessage.setTo(userEmail);
        simpleMailMessage.setSubject("【维修中】感谢您反馈机房报修问题");
        simpleMailMessage.setText("亲爱的"+userName+"先生/女生,您提交的报修工单机房管理员已确实收到,感谢您的反馈。机房管理员正在快马加鞭地解决您提交问题,维修完成后将会通过邮件通知您。");
        simpleMailMessage.setSentDate(new Date());
        mailSender.send(simpleMailMessage);
        return "OK";
    }

    @Override
    public String completeOrderMail(String userName, String userEmail) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(ConstantUtils.Mail.FROM_MAIL);
        simpleMailMessage.setTo(userEmail);
        simpleMailMessage.setSubject("【维修完成】感谢您反馈机房报修问题已完成");
        simpleMailMessage.setText("亲爱的"+userName+"先生/女生,您提交的报修机房工单已维修完成,感谢您的反馈,让我们的机房环境变得更好!");
        simpleMailMessage.setSentDate(new Date());
        mailSender.send(simpleMailMessage);
        return "OK";
    }
}

    到这里,Service层开发——邮件服务开发已经完成了。如果您对次篇文章有疑问,可以在文章下方留言,谢谢您的阅读。如对【机房报修管理系统】系列文章有兴趣,可以关注或收藏我的文章,您的支持是我最大的动力,我会尽快推出下一期内容,敬请期待。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值