如何在SpringBoot中实现邮件的发送? | 带你读《SpringBoot实战教程》之二十五

简介: 本节在springBoot中实现了简单邮件的发送。

上一篇:SpringBoot如何整合JPA-Hibernate? | 带你读《SpringBoot实战教程》之二十四
下一篇:如何实现发送带附件的邮件? | 带你读《SpringBoot实战教程》之二十六

本文来自于千锋教育在阿里云开发者社区学习中心上线课程《SpringBoot实战教程》,主讲人杨红艳,点击查看视频内容

SpringBoot整合Email

添加依赖:

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

创建全局配置文件:application.properties

# JavaMailSender 邮件发送的配置
spring.mail.host=smtp.qq.com  #smtp.163.com
spring.mail.username=465008297@qq.com
spring.mail.password=cjmegwewmbiqcach #授权码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
#若使用QQ邮箱发送邮件,则需要修改为spring.mail.host=smtp.qq.com,同时spring.mail.password改为QQ邮箱的授权码。
#QQ邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得QQ的授权码 

出现认证失败的解决方案:因为JDK1.8中jrelibsecurity中两个 jar 包替换的缘故。将下载后的local_policy.jar和US_export_policy.jar替换到JDK1.8的jrelibsecurity文件夹即可。

新建包:com.qianfeng.email
获取发件人的邮箱:

@Component
public class EmailConfig {

    @Value("${spring.mail.username}")
    private String emailFrom;
    
    public String getEmailFrom() {

        return emailFrom;
    }
    public void setEmailFrom(String emailFrom) {
        this.emailFrom = emailFrom;
    }
}

EmailService:

public interface EmailService {

    //发送简单的邮件
    void sendSimpleMail(String sendTo, String title, String content);

}

EmailServiceImpl:

@Service
public class EmailServiceImpl implements EmailService {

    @Autowired
    private EmailConfig emailConfig;

    @Autowired
    private JavaMailSender mailSender;

    @Override
    public void sendSimpleMail(String sendTo, String title, String content) {
        //简单邮件的发送
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(emailConfig.getEmailFrom());
        message.setTo(sendTo);
        message.setSubject(title);
        message.setText(content);
        
        mailSender.send(message);
    }
}

EmailController:

@Controller
public class EmailController {

    @Autowired
    private EmailService emailService;

    @RequestMapping("/simple")
    @ResponseBody
    public String sendSimpleEmail() {
        emailService.sendSimpleMail("465008297@qq.com", "你好", "明天去你家玩儿");
        return "success";
    }
}

在启动类中添加所有需要扫描的包:

@SpringBootApplication(scanBasePackages="com.qianfeng.email")

执行结果:
image.png
image.png

配套视频

相关文章
|
5天前
|
存储 Java Maven
Spring Boot WebFlux 增删改查完整实战 demo
Spring Boot WebFlux 增删改查完整实战 demo
|
1月前
|
Java 应用服务中间件 测试技术
深入探索Spring Boot Web应用源码及实战应用
【5月更文挑战第11天】本文将详细解析Spring Boot Web应用的源码架构,并通过一个实际案例,展示如何构建一个基于Spring Boot的Web应用。本文旨在帮助读者更好地理解Spring Boot的内部工作机制,以及如何利用这些机制优化自己的Web应用开发。
52 3
|
1月前
|
安全 Java 开发者
深入理解Spring Boot配置绑定及其实战应用
【4月更文挑战第10天】本文详细探讨了Spring Boot中配置绑定的核心概念,并结合实战示例,展示了如何在项目中有效地使用这些技术来管理和绑定配置属性。
29 1
|
1月前
|
安全 Java 测试技术
Spring Boot集成支付宝支付:概念与实战
【4月更文挑战第29天】在电子商务和在线业务应用中,集成有效且安全的支付解决方案是至关重要的。支付宝作为中国领先的支付服务提供商,其支付功能的集成可以显著提升用户体验。本篇博客将详细介绍如何在Spring Boot应用中集成支付宝支付功能,并提供一个实战示例。
104 2
|
5天前
|
安全 Java Maven
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
11 2
|
11天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的邮件过滤系统的详细设计和实现
基于SpringBoot+Vue的邮件过滤系统的详细设计和实现
8 1
|
16小时前
|
Java
springboot使用邮件服务
springboot使用邮件服务
3 0
|
1天前
|
Java 数据安全/隐私保护
Springboot拓展之整合邮件 JavaMail的使用与实操
Springboot拓展之整合邮件 JavaMail的使用与实操
3 0
|
26天前
|
Java 数据库 Spring
springboot 解耦、隔离、异步的原则以及实战
【5月更文挑战第30天】在Spring Boot中实现解耦、隔离和异步的原则,能够提升应用程序的可维护性、可扩展性和性能。下面我会先介绍这三个原则的基本概念和意义,然后通过实战示例展示如何在Spring Boot应用中应用这些原则。
42 1
|
27天前
|
IDE Java Maven
Springboot中Processor注解概念以及实战案例
【5月更文挑战第28天】在Spring Boot中,没有直接名为Processor的注解。不过,你可能是在谈论与Spring Boot相关的注解处理器(Annotation Processors)的概念,尤其是在处理自定义注解或@ConfigurationProperties注解时的情况。
35 1