厚积薄发打卡Day89: Springboot整合JavaMailSender实例

背景:

在某个业务执行签到时,会根据疫情风险等级判断是否发送告警邮件:如果员工的签到地点为中高风险地区则需要发送邮件给对应人事进行告警。

在签到过程中的业务逻辑相对耗时,且需要保存数据同步执行;如果发送邮件再做成同步执行的,势必导致签到执行时间过长,影响用户体验。

而发送邮件跟保存签到数据没有直接关联,所以使用异步执行能提高用户体验。

参考:

  1. spring-boot @Async 的使用、自定义Executor的配置方法
  2. SpringBoot整合JavaMailSender实现邮件发送

整合:

  1. 官方文档: Interface JavaMailSender

  2. maven依赖:编辑pom.xml文件,添加依赖库

    <dependency>
    	<groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    
  3. 设置SMTP服务器信息

    发送邮件是通过SMTP服务器来完成的,所以我们要配置一下SMTP服务器的连接信息,以163邮箱为例:

    spring:
    	……
    	mail:
        	default-encoding: UTF-8
        	host: smtp.163.com
        	username: *************@163.com
        	password: 此处是密码
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot提供了简便的方式来配置JavaMailSender,但是如果不使用配置文件,也可以通过编程方式来配置JavaMailSender。 首先,需要在Spring Boot应用程序的配置类或配置文件中创建一个JavaMailSender bean。可以使用JavaMailSenderImpl类作为实现,然后设置相应的属性。 例如,可以创建一个名为EmailConfig的配置类: ```java @Configuration public class EmailConfig { @Bean public JavaMailSender javaMailSender() { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setHost("smtp.example.com"); // 设置SMTP服务器主机 mailSender.setPort(587); // 设置SMTP服务器端口号 mailSender.setUsername("username"); // 设置用户名 mailSender.setPassword("password"); // 设置密码 Properties props = mailSender.getJavaMailProperties(); props.put("mail.smtp.starttls.enable", "true"); // 启用STARTTLS加密 return mailSender; } } ``` 然后,在需要发送邮件的地方注入JavaMailSender,并使用其send方法发送邮件。 例如,可以创建一个名为EmailService的服务类: ```java @Service public class EmailService { @Autowired private JavaMailSender javaMailSender; public void sendEmail(String to, String subject, String body) { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); // 设置收件人 message.setSubject(subject); // 设置邮件主题 message.setText(body); // 设置邮件内容 javaMailSender.send(message); // 发送邮件 } } ``` 然后,在需要发送邮件的地方使用EmailService来发送邮件。 总结来说,不使用配置文件,可以通过编程方式来配置JavaMailSender,并使用它来发送邮件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值