springboot发送邮件

1. 依赖

java 复制代码
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2. 在application.yml文件中配置JavaMail

java 复制代码
spring:
   mail:
    # 邮箱服务器
    host: smtp.qq.com
    # 邮箱
    username: xxxxxx@qq.com
    # 授权码,不是登录密码
    password: xxxxxxxx

授权码获取

各种邮箱获取授权码



3. 无附件,简单内容发送

java 复制代码
import com.itheima.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
 
@Service
public class SendMailServiceImpl implements SendMailService {
    @Autowired
    private JavaMailSender javaMailSender;
    //发送人
    private String from = "xxx@163.com";
    //接收人
    private String to = "xxx@qq.com";
    //标题
    private String subject = "测试邮件";
    //正文
    private String context = "测试邮件正文内容";
    @Override
    public void sendMail() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom(from+"(小甜甜)");
        message.setTo(to);
        message.setSubject(subject);
        message.setText(context);
        javaMailSender.send(message);
    }
}

运行测试

4. 带附件,图片发送

java 复制代码
import com.itheima.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.internet.MimeMessage;
import java.io.File;
 
@Service
public class SendMailServiceImpl2 implements SendMailService {
    @Autowired
    private JavaMailSender javaMailSender;
    //发送人
    private String from = "xxx@163.com";
    //接收人
    private String to = "xxx@qq.com";
    //标题
    private String subject = "测试邮件";
    //正文
    private String context = "<img src='https://img-blog.csdnimg.cn/8774575ed57d48159111f8f505235f89.png?x-oss-process=image/resize,m_fixed,h_300,image/format,png'/><a href='https://www.baidu.com/'>点开有惊喜</a>";
 
    @Override
    public void sendMail() {
        try {
            MimeMessage message = javaMailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            helper.setFrom(from +"(小甜甜)");
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(context,true);
 
            //添加附件
            File f1 = new File("E:\\guigu\\springbooot\\springboot_23_mail\\target\\classes\\logo.png");
            File f2 = new File("E:\\guigu\\test\\src\\mail\\word1.docx");
 
            helper.addAttachment(f1.getName(),f1);
            helper.addAttachment("最靠谱的培训结构.png",f2);
 
            javaMailSender.send(message);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

运行测试

相关推荐
程序猿阿越11 分钟前
Kafka4源码(二)创建Topic
java·后端·源码阅读
悟空码字15 分钟前
Spring Boot 整合 MongoDB 最佳实践:CRUD、分页、事务、索引全覆盖
java·spring boot·后端
省长25 分钟前
Sa-Token v1.45.0 发布 🚀,正式支持 Spring Boot 4、新增 Jackson3/Snack4 插件适配
java·后端·开源
NE_STOP1 小时前
MyBatis-动态sql与高级映射
java
后端AI实验室1 小时前
我把同一个需求分别交给初级程序员、高级程序员和AI,结果让我沉默了
java·ai
sTone873751 小时前
web后端开发概念: VO 和 PO
java·后端·架构
SimonKing2 小时前
JetBrains+Qoder变身Agentic 编码平台,媲美Cursor、Trae等AI编程平台
java·后端·程序员
Seven973 小时前
NIO:解开非阻塞I/O高并发编程的秘密
java
华仔啊15 小时前
千万别给数据库字段加默认值 null!真的会出问题
java·数据库·后端
老赵全栈实战17 小时前
【每日一技MyBatis trim标签核心用法
java·mybatis·orm