Springboot项目搭建邮件服务

一、QQ邮箱设置

1、进入账户设置

在这里插入图片描述

2、开启服务

在这里插入图片描述在这里插入图片描述

记得记住授权码,后面配置需要用到。
在这里插入图片描述

二、新建项目

在这里插入图片描述
在这里插入图片描述
选择依赖,如果有继承的项目,且项目中有Web依赖的话,此处无需再添加Web依赖了。
在这里插入图片描述

三、项目改造

1、依赖修改

修改继承的父类。
在这里插入图片描述
在这里插入图片描述

2、配置文件

在这里插入图片描述

server.port=8082

#邮件发送
spring.mail.host=smtp.qq.com
spring.mail.protocol=smtp
spring.mail.default-encoding=UTF-8
#邮件生成的授权码
spring.mail.password=密钥
spring.mail.username=邮箱号
#发送服务器的端口号修改成465或587
spring.mail.port=587
#加密工具类
spring.mail.properties.mail.stmp.socketFactory.class=javax.net.ssl.SSLSocketPactory
#开启日志(打印在控制台)
spring.mail.properties.mail.debug=true

#消息中间件
spring.rabbitmq.username=用户名
spring.rabbitmq.password=密码
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672

3、序列化实例

在这里插入图片描述

员工返回的结构中存在其他的实体类,所以这些也需要序列化
在这里插入图片描述

四、创建邮件模板

在这里插入图片描述

五、创建消息队列

在这里插入图片描述

六、邮件发送类

在这里插入图片描述

package com.tony.mailserver.receiver;

import com.tony.mindhr.model.Employee;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.mail.MailProperties;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.util.Date;

/**
 * Created with IntelliJ IDEA.
 *
 * @Title: MailReceiver
 * @Auther: 皮蛋布丁
 * @Date: 2021/06/28/22:12
 * @Description: 消息接收
 */
@Component
public class MailReceiver {

    public static final Logger log = LoggerFactory.getLogger(MailReceiver.class);
    @Autowired
    JavaMailSender javaMailSender;
    @Autowired
    MailProperties mailProperties;  //配置文件中spring.mail.username的源头
    @Autowired
    TemplateEngine templateEngine;

    @RabbitListener(queues = "tony.mail.welcome")
    public void handler(Employee employee) {
        log.info(employee.toString());
        //收到消息,发送邮件
        MimeMessage msg = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(msg);
        try {
            helper.setTo(employee.getEmail());
            helper.setFrom(mailProperties.getUsername());
            helper.setSubject("入职欢迎");
            helper.setSentDate(new Date());
            //渲染邮件模板
            Context context = new Context();
            context.setVariable("name",employee.getName());
            context.setVariable("posName",employee.getPosition().getName());
            context.setVariable("posName",employee.getJobLevel().getName());
            context.setVariable("departmentName",employee.getDepartment().getName());
            String mail = templateEngine.process("mail", context);
            helper.setText(mail,true);
            //发送消息
            javaMailSender.send(msg);
        } catch (MessagingException e) {
            e.printStackTrace();
            log.error("邮件发送失败!");
        }
    }
}

七、员工模块

1、添加消息中间件依赖

在这里插入图片描述

2、新增消息中间件配置

在这里插入图片描述

3、添加员工操作修改

1.主键回填修改

确保员工添加成功后能够获取到其的主键(如果能够获取到,可以忽略此步骤,进行下一步)
在这里插入图片描述

2.注入消息发送的模板

在这里插入图片描述

3.修改service

在这里插入图片描述

八、运行

1、启动邮件模块

运行项目前先确保RabbitMQ已经运行了。
在这里插入图片描述

2、启动web主项目

在这里插入图片描述

3、启动前端

在这里插入图片描述

4、添加员工操作

在这里插入图片描述
在这里插入图片描述
添加成功!

注:能力有限,还请谅解,争取早日能够写出有质量的文章!

我是皮蛋布丁,一位爱吃皮蛋的热爱运动的废铁程序猿。

在这里插入图片描述

感谢各位大佬光临寒舍~

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
下面是通过Spring Boot连接Linux搭建的SMTP服务器的步骤: 1. 在Spring Boot项目的`application.properties`文件中增加以下配置: ``` spring.mail.host=your.smtp.server.com spring.mail.port=587 spring.mail.username=your_username spring.mail.password=your_password spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.connectiontimeout=5000 spring.mail.properties.mail.smtp.timeout=5000 spring.mail.properties.mail.smtp.writetimeout=5000 ``` 其中,`your.smtp.server.com`是你的SMTP服务器地址,`587`是SMTP服务器端口,`your_username`和`your_password`是你的SMTP服务器登录用户名和密码。 2. 在Spring Boot项目中增加JavaMailSender Bean: ``` @Bean public JavaMailSender javaMailSender() { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setHost(environment.getProperty("spring.mail.host")); mailSender.setPort(Integer.parseInt(environment.getProperty("spring.mail.port"))); mailSender.setUsername(environment.getProperty("spring.mail.username")); mailSender.setPassword(environment.getProperty("spring.mail.password")); Properties props = mailSender.getJavaMailProperties(); props.put("mail.smtp.starttls.enable", environment.getProperty("spring.mail.properties.mail.smtp.starttls.enable")); props.put("mail.smtp.starttls.required", environment.getProperty("spring.mail.properties.mail.smtp.starttls.required")); props.put("mail.smtp.auth", environment.getProperty("spring.mail.properties.mail.smtp.auth")); props.put("mail.smtp.connectiontimeout", environment.getProperty("spring.mail.properties.mail.smtp.connectiontimeout")); props.put("mail.smtp.timeout", environment.getProperty("spring.mail.properties.mail.smtp.timeout")); props.put("mail.smtp.writetimeout", environment.getProperty("spring.mail.properties.mail.smtp.writetimeout")); return mailSender; } ``` 在该Bean中,我们通过`JavaMailSenderImpl`类来创建一个JavaMailSender对象,并设置SMTP服务器的相关参数。其中,`environment`是Spring Boot中的环境变量。 3. 在Spring Boot项目中增加邮件发送服务: ``` @Service public class EmailService { @Autowired private JavaMailSender mailSender; public void sendSimpleMessage(String to, String subject, String text) { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(text); mailSender.send(message); } } ``` 在该服务中,我们通过调用JavaMailSender对象的send方法来发送邮件。 现在你可以在你的Spring Boot项目中注入`EmailService`服务来发送邮件了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值